/*
 * Copyright Codeplay Software Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use these files except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// DO NOT MODIFY BY HAND
// This file was automatically generated by generate_pooling_tests.py.
// Results calculated using Tensorflow v1.12.0.

#include <gtest/gtest.h>

#include "sycldnn/padding_mode.h"

#include "sycldnn/pooling/operators.h"

#include "test/types/cartesian_product.h"
#include "test/types/kernel_data_types.h"
#include "test/types/test_backend_types.h"
#include "test/types/to_gtest_types.h"

#include "test/pooling/pooling_fixture.h"

#include <array>
#include <vector>

using namespace sycldnn;  // NOLINT(google-build-using-namespace)
using DataTypeList = sycldnn::types::KernelDataTypes;
using Backends = sycldnn::types::DefaultBackendTypes;

using SNNTypePairs =
    sycldnn::types::CartesianProduct<DataTypeList, Backends>::type;
using GTestTypePairs = sycldnn::types::ToGTestTypes<SNNTypePairs>::type;

template <typename Pair>
using MaxwithnanWindow11Stride1Grad =
    PoolingFixture<typename Pair::FirstType, typename Pair::SecondType,
                   pooling::MaxWithNan, pooling::Backpropagate>;
TYPED_TEST_SUITE(MaxwithnanWindow11Stride1Grad, GTestTypePairs);
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x12x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 1.,   2.,   3.,   4.,   5.,   6.,   57.,
      0., 0., 0., 0., 0., 13.,  14.,  15.,  16.,  17.,  18.,  129.,
      0., 0., 0., 0., 0., 25.,  26.,  27.,  28.,  29.,  30.,  201.,
      0., 0., 0., 0., 0., 37.,  38.,  39.,  40.,  41.,  42.,  273.,
      0., 0., 0., 0., 0., 49.,  50.,  51.,  52.,  53.,  54.,  345.,
      0., 0., 0., 0., 0., 61.,  62.,  63.,  64.,  65.,  66.,  417.,
      0., 0., 0., 0., 0., 618., 624., 630., 636., 642., 648., 4014.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x12x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 1., 2., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 3., 4.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x12x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      1.,    2.,    3.,    4.,    5.,    6.,    7.,    8.,    9.,    10.,
      11.,   12.,   108.,  114.,  0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    25.,   26.,   27.,   28.,   29.,   30.,
      31.,   32.,   33.,   34.,   35.,   36.,   252.,  258.,  0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    49.,   50.,
      51.,   52.,   53.,   54.,   55.,   56.,   57.,   58.,   59.,   60.,
      396.,  402.,  0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    73.,   74.,   75.,   76.,   77.,   78.,   79.,   80.,
      81.,   82.,   83.,   84.,   540.,  546.,  0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    97.,   98.,   99.,   100.,
      101.,  102.,  103.,  104.,  105.,  106.,  107.,  108.,  684.,  690.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      121.,  122.,  123.,  124.,  125.,  126.,  127.,  128.,  129.,  130.,
      131.,  132.,  828.,  834.,  0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    1230., 1236., 1242., 1248., 1254., 1260.,
      1266., 1272., 1278., 1284., 1290., 1296., 7992., 8028.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x12x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 1., 2., 3., 4., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 5., 6., 7., 8.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x12x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      1.,    2.,    3.,     4.,     5.,     6.,    7.,    8.,    9.,    10.,
      11.,   12.,   13.,    14.,    15.,    16.,   17.,   18.,   19.,   20.,
      21.,   22.,   23.,    24.,    210.,   216.,  222.,  228.,  0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    49.,   50.,
      51.,   52.,   53.,    54.,    55.,    56.,   57.,   58.,   59.,   60.,
      61.,   62.,   63.,    64.,    65.,    66.,   67.,   68.,   69.,   70.,
      71.,   72.,   498.,   504.,   510.,   516.,  0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    97.,   98.,   99.,   100.,
      101.,  102.,  103.,   104.,   105.,   106.,  107.,  108.,  109.,  110.,
      111.,  112.,  113.,   114.,   115.,   116.,  117.,  118.,  119.,  120.,
      786.,  792.,  798.,   804.,   0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     145.,   146.,  147.,  148.,  149.,  150.,
      151.,  152.,  153.,   154.,   155.,   156.,  157.,  158.,  159.,  160.,
      161.,  162.,  163.,   164.,   165.,   166.,  167.,  168.,  1074., 1080.,
      1086., 1092., 0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    193.,   194.,   195.,   196.,  197.,  198.,  199.,  200.,
      201.,  202.,  203.,   204.,   205.,   206.,  207.,  208.,  209.,  210.,
      211.,  212.,  213.,   214.,   215.,   216.,  1362., 1368., 1374., 1380.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      241.,  242.,  243.,   244.,   245.,   246.,  247.,  248.,  249.,  250.,
      251.,  252.,  253.,   254.,   255.,   256.,  257.,  258.,  259.,  260.,
      261.,  262.,  263.,   264.,   1650.,  1656., 1662., 1668., 0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    2454., 2460.,
      2466., 2472., 2478.,  2484.,  2490.,  2496., 2502., 2508., 2514., 2520.,
      2526., 2532., 2538.,  2544.,  2550.,  2556., 2562., 2568., 2574., 2580.,
      2586., 2592., 15948., 15984., 16020., 16056.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x12x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  1.,  2.,  3.,  4.,  5., 6., 7.,
      8., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 9., 10., 11., 12., 13., 14., 15., 16.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x12x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 1.,   2.,   3.,   4.,   5.,   6.,   7.,   63.,
      0., 0., 0., 0., 0., 14.,  15.,  16.,  17.,  18.,  19.,  20.,  141.,
      0., 0., 0., 0., 0., 27.,  28.,  29.,  30.,  31.,  32.,  33.,  219.,
      0., 0., 0., 0., 0., 40.,  41.,  42.,  43.,  44.,  45.,  46.,  297.,
      0., 0., 0., 0., 0., 53.,  54.,  55.,  56.,  57.,  58.,  59.,  375.,
      0., 0., 0., 0., 0., 66.,  67.,  68.,  69.,  70.,  71.,  72.,  453.,
      0., 0., 0., 0., 0., 669., 675., 681., 687., 693., 699., 705., 4356.};
  const std::array<int, 4> in_shape = {{1, 12, 13, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x12x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 2., 3., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 4., 5., 6.};
  const std::array<int, 4> in_shape = {{1, 12, 13, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x12x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      1.,    2.,    3.,    4.,    5.,    6.,    7.,    8.,    9.,    10.,
      11.,   12.,   13.,   14.,   120.,  126.,  0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    27.,   28.,   29.,   30.,
      31.,   32.,   33.,   34.,   35.,   36.,   37.,   38.,   39.,   40.,
      276.,  282.,  0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    53.,   54.,   55.,   56.,   57.,   58.,   59.,   60.,
      61.,   62.,   63.,   64.,   65.,   66.,   432.,  438.,  0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    79.,   80.,
      81.,   82.,   83.,   84.,   85.,   86.,   87.,   88.,   89.,   90.,
      91.,   92.,   588.,  594.,  0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    105.,  106.,  107.,  108.,  109.,  110.,
      111.,  112.,  113.,  114.,  115.,  116.,  117.,  118.,  744.,  750.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      131.,  132.,  133.,  134.,  135.,  136.,  137.,  138.,  139.,  140.,
      141.,  142.,  143.,  144.,  900.,  906.,  0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    1332., 1338., 1344., 1350.,
      1356., 1362., 1368., 1374., 1380., 1386., 1392., 1398., 1404., 1410.,
      8676., 8712.};
  const std::array<int, 4> in_shape = {{1, 12, 13, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x12x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 1., 2., 3., 4., 5., 6., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      7., 8., 9., 10., 11., 12.};
  const std::array<int, 4> in_shape = {{1, 12, 13, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x12x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      1.,     2.,     3.,     4.,    5.,    6.,    7.,    8.,    9.,    10.,
      11.,    12.,    13.,    14.,   15.,   16.,   17.,   18.,   19.,   20.,
      21.,    22.,    23.,    24.,   25.,   26.,   27.,   28.,   234.,  240.,
      246.,   252.,   0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     53.,    54.,   55.,   56.,   57.,   58.,   59.,   60.,
      61.,    62.,    63.,    64.,   65.,   66.,   67.,   68.,   69.,   70.,
      71.,    72.,    73.,    74.,   75.,   76.,   77.,   78.,   79.,   80.,
      546.,   552.,   558.,   564.,  0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    105.,  106.,  107.,  108.,  109.,  110.,
      111.,   112.,   113.,   114.,  115.,  116.,  117.,  118.,  119.,  120.,
      121.,   122.,   123.,   124.,  125.,  126.,  127.,  128.,  129.,  130.,
      131.,   132.,   858.,   864.,  870.,  876.,  0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    157.,  158.,  159.,  160.,
      161.,   162.,   163.,   164.,  165.,  166.,  167.,  168.,  169.,  170.,
      171.,   172.,   173.,   174.,  175.,  176.,  177.,  178.,  179.,  180.,
      181.,   182.,   183.,   184.,  1170., 1176., 1182., 1188., 0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    209.,  210.,
      211.,   212.,   213.,   214.,  215.,  216.,  217.,  218.,  219.,  220.,
      221.,   222.,   223.,   224.,  225.,  226.,  227.,  228.,  229.,  230.,
      231.,   232.,   233.,   234.,  235.,  236.,  1482., 1488., 1494., 1500.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      261.,   262.,   263.,   264.,  265.,  266.,  267.,  268.,  269.,  270.,
      271.,   272.,   273.,   274.,  275.,  276.,  277.,  278.,  279.,  280.,
      281.,   282.,   283.,   284.,  285.,  286.,  287.,  288.,  1794., 1800.,
      1806.,  1812.,  0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     2658.,  2664., 2670., 2676., 2682., 2688., 2694., 2700.,
      2706.,  2712.,  2718.,  2724., 2730., 2736., 2742., 2748., 2754., 2760.,
      2766.,  2772.,  2778.,  2784., 2790., 2796., 2802., 2808., 2814., 2820.,
      17316., 17352., 17388., 17424.};
  const std::array<int, 4> in_shape = {{1, 12, 13, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x12x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  1.,  2.,  3.,  4., 5., 6., 7., 8.,  9.,  10.,
      11., 12., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 13., 14., 15.,
      16., 17., 18., 19., 20., 21., 22., 23., 24.};
  const std::array<int, 4> in_shape = {{1, 12, 13, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x12x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   1.,   2.,   3.,
      4.,  5.,  6.,  7.,   8.,   69.,  0.,   0.,   0.,   0.,   0.,   15.,  16.,
      17., 18., 19., 20.,  21.,  22.,  153., 0.,   0.,   0.,   0.,   0.,   29.,
      30., 31., 32., 33.,  34.,  35.,  36.,  237., 0.,   0.,   0.,   0.,   0.,
      43., 44., 45., 46.,  47.,  48.,  49.,  50.,  321., 0.,   0.,   0.,   0.,
      0.,  57., 58., 59.,  60.,  61.,  62.,  63.,  64.,  405., 0.,   0.,   0.,
      0.,  0.,  71., 72.,  73.,  74.,  75.,  76.,  77.,  78.,  489., 0.,   0.,
      0.,  0.,  0.,  720., 726., 732., 738., 744., 750., 756., 762., 4698.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x12x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 2., 3.,
      4., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 5., 6., 7., 8.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x12x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      1.,    2.,    3.,    4.,    5.,    6.,    7.,    8.,    9.,    10.,
      11.,   12.,   13.,   14.,   15.,   16.,   132.,  138.,  0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    29.,   30.,
      31.,   32.,   33.,   34.,   35.,   36.,   37.,   38.,   39.,   40.,
      41.,   42.,   43.,   44.,   300.,  306.,  0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    57.,   58.,   59.,   60.,
      61.,   62.,   63.,   64.,   65.,   66.,   67.,   68.,   69.,   70.,
      71.,   72.,   468.,  474.,  0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    85.,   86.,   87.,   88.,   89.,   90.,
      91.,   92.,   93.,   94.,   95.,   96.,   97.,   98.,   99.,   100.,
      636.,  642.,  0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    113.,  114.,  115.,  116.,  117.,  118.,  119.,  120.,
      121.,  122.,  123.,  124.,  125.,  126.,  127.,  128.,  804.,  810.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      141.,  142.,  143.,  144.,  145.,  146.,  147.,  148.,  149.,  150.,
      151.,  152.,  153.,  154.,  155.,  156.,  972.,  978.,  0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    1434., 1440.,
      1446., 1452., 1458., 1464., 1470., 1476., 1482., 1488., 1494., 1500.,
      1506., 1512., 1518., 1524., 9360., 9396.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x12x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  1.,  2., 3., 4., 5., 6.,
      7., 8., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 9., 10., 11., 12., 13., 14., 15., 16.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x12x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      1.,     2.,    3.,    4.,    5.,    6.,    7.,    8.,    9.,     10.,
      11.,    12.,   13.,   14.,   15.,   16.,   17.,   18.,   19.,    20.,
      21.,    22.,   23.,   24.,   25.,   26.,   27.,   28.,   29.,    30.,
      31.,    32.,   258.,  264.,  270.,  276.,  0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    57.,   58.,   59.,    60.,
      61.,    62.,   63.,   64.,   65.,   66.,   67.,   68.,   69.,    70.,
      71.,    72.,   73.,   74.,   75.,   76.,   77.,   78.,   79.,    80.,
      81.,    82.,   83.,   84.,   85.,   86.,   87.,   88.,   594.,   600.,
      606.,   612.,  0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    113.,  114.,  115.,  116.,  117.,  118.,  119.,   120.,
      121.,   122.,  123.,  124.,  125.,  126.,  127.,  128.,  129.,   130.,
      131.,   132.,  133.,  134.,  135.,  136.,  137.,  138.,  139.,   140.,
      141.,   142.,  143.,  144.,  930.,  936.,  942.,  948.,  0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    169.,   170.,
      171.,   172.,  173.,  174.,  175.,  176.,  177.,  178.,  179.,   180.,
      181.,   182.,  183.,  184.,  185.,  186.,  187.,  188.,  189.,   190.,
      191.,   192.,  193.,  194.,  195.,  196.,  197.,  198.,  199.,   200.,
      1266.,  1272., 1278., 1284., 0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    225.,  226.,  227.,  228.,  229.,   230.,
      231.,   232.,  233.,  234.,  235.,  236.,  237.,  238.,  239.,   240.,
      241.,   242.,  243.,  244.,  245.,  246.,  247.,  248.,  249.,   250.,
      251.,   252.,  253.,  254.,  255.,  256.,  1602., 1608., 1614.,  1620.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      281.,   282.,  283.,  284.,  285.,  286.,  287.,  288.,  289.,   290.,
      291.,   292.,  293.,  294.,  295.,  296.,  297.,  298.,  299.,   300.,
      301.,   302.,  303.,  304.,  305.,  306.,  307.,  308.,  309.,   310.,
      311.,   312.,  1938., 1944., 1950., 1956., 0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    2862., 2868., 2874.,  2880.,
      2886.,  2892., 2898., 2904., 2910., 2916., 2922., 2928., 2934.,  2940.,
      2946.,  2952., 2958., 2964., 2970., 2976., 2982., 2988., 2994.,  3000.,
      3006.,  3012., 3018., 3024., 3030., 3036., 3042., 3048., 18684., 18720.,
      18756., 18792.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x12x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9.,  10., 11., 12., 13., 14., 15.,
      16., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  17., 18., 19., 20.,
      21., 22., 23., 24., 25., 26., 27., 28., 29., 30., 31., 32.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x13x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 1.,   2.,   3.,   4.,   5.,   6.,   57.,
      0., 0., 0., 0., 0., 13.,  14.,  15.,  16.,  17.,  18.,  129.,
      0., 0., 0., 0., 0., 25.,  26.,  27.,  28.,  29.,  30.,  201.,
      0., 0., 0., 0., 0., 37.,  38.,  39.,  40.,  41.,  42.,  273.,
      0., 0., 0., 0., 0., 49.,  50.,  51.,  52.,  53.,  54.,  345.,
      0., 0., 0., 0., 0., 61.,  62.,  63.,  64.,  65.,  66.,  417.,
      0., 0., 0., 0., 0., 73.,  74.,  75.,  76.,  77.,  78.,  489.,
      0., 0., 0., 0., 0., 690., 696., 702., 708., 714., 720., 4446.};
  const std::array<int, 4> in_shape = {{1, 13, 12, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x13x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 1., 2., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 3., 4.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 5., 6.};
  const std::array<int, 4> in_shape = {{1, 13, 12, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x13x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      1.,    2.,    3.,    4.,    5.,    6.,    7.,    8.,    9.,    10.,
      11.,   12.,   108.,  114.,  0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    25.,   26.,   27.,   28.,   29.,   30.,
      31.,   32.,   33.,   34.,   35.,   36.,   252.,  258.,  0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    49.,   50.,
      51.,   52.,   53.,   54.,   55.,   56.,   57.,   58.,   59.,   60.,
      396.,  402.,  0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    73.,   74.,   75.,   76.,   77.,   78.,   79.,   80.,
      81.,   82.,   83.,   84.,   540.,  546.,  0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    97.,   98.,   99.,   100.,
      101.,  102.,  103.,  104.,  105.,  106.,  107.,  108.,  684.,  690.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      121.,  122.,  123.,  124.,  125.,  126.,  127.,  128.,  129.,  130.,
      131.,  132.,  828.,  834.,  0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    145.,  146.,  147.,  148.,  149.,  150.,
      151.,  152.,  153.,  154.,  155.,  156.,  972.,  978.,  0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    1374., 1380.,
      1386., 1392., 1398., 1404., 1410., 1416., 1422., 1428., 1434., 1440.,
      8856., 8892.};
  const std::array<int, 4> in_shape = {{1, 13, 12, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x13x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 1., 2., 3., 4., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 5., 6., 7., 8.,
      0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 9., 10., 11., 12.};
  const std::array<int, 4> in_shape = {{1, 13, 12, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x13x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      1.,     2.,     3.,     4.,    5.,    6.,    7.,    8.,    9.,    10.,
      11.,    12.,    13.,    14.,   15.,   16.,   17.,   18.,   19.,   20.,
      21.,    22.,    23.,    24.,   210.,  216.,  222.,  228.,  0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    49.,   50.,
      51.,    52.,    53.,    54.,   55.,   56.,   57.,   58.,   59.,   60.,
      61.,    62.,    63.,    64.,   65.,   66.,   67.,   68.,   69.,   70.,
      71.,    72.,    498.,   504.,  510.,  516.,  0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    97.,   98.,   99.,   100.,
      101.,   102.,   103.,   104.,  105.,  106.,  107.,  108.,  109.,  110.,
      111.,   112.,   113.,   114.,  115.,  116.,  117.,  118.,  119.,  120.,
      786.,   792.,   798.,   804.,  0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    145.,  146.,  147.,  148.,  149.,  150.,
      151.,   152.,   153.,   154.,  155.,  156.,  157.,  158.,  159.,  160.,
      161.,   162.,   163.,   164.,  165.,  166.,  167.,  168.,  1074., 1080.,
      1086.,  1092.,  0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     193.,   194.,  195.,  196.,  197.,  198.,  199.,  200.,
      201.,   202.,   203.,   204.,  205.,  206.,  207.,  208.,  209.,  210.,
      211.,   212.,   213.,   214.,  215.,  216.,  1362., 1368., 1374., 1380.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      241.,   242.,   243.,   244.,  245.,  246.,  247.,  248.,  249.,  250.,
      251.,   252.,   253.,   254.,  255.,  256.,  257.,  258.,  259.,  260.,
      261.,   262.,   263.,   264.,  1650., 1656., 1662., 1668., 0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    289.,  290.,
      291.,   292.,   293.,   294.,  295.,  296.,  297.,  298.,  299.,  300.,
      301.,   302.,   303.,   304.,  305.,  306.,  307.,  308.,  309.,  310.,
      311.,   312.,   1938.,  1944., 1950., 1956., 0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    2742., 2748., 2754., 2760.,
      2766.,  2772.,  2778.,  2784., 2790., 2796., 2802., 2808., 2814., 2820.,
      2826.,  2832.,  2838.,  2844., 2850., 2856., 2862., 2868., 2874., 2880.,
      17676., 17712., 17748., 17784.};
  const std::array<int, 4> in_shape = {{1, 13, 12, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x13x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 9.,  10., 11., 12., 13., 14., 15., 16.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 17., 18., 19., 20., 21., 22., 23., 24.};
  const std::array<int, 4> in_shape = {{1, 13, 12, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x13x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 1.,   2.,   3.,   4.,   5.,   6.,   7.,   63.,
      0., 0., 0., 0., 0., 14.,  15.,  16.,  17.,  18.,  19.,  20.,  141.,
      0., 0., 0., 0., 0., 27.,  28.,  29.,  30.,  31.,  32.,  33.,  219.,
      0., 0., 0., 0., 0., 40.,  41.,  42.,  43.,  44.,  45.,  46.,  297.,
      0., 0., 0., 0., 0., 53.,  54.,  55.,  56.,  57.,  58.,  59.,  375.,
      0., 0., 0., 0., 0., 66.,  67.,  68.,  69.,  70.,  71.,  72.,  453.,
      0., 0., 0., 0., 0., 79.,  80.,  81.,  82.,  83.,  84.,  85.,  531.,
      0., 0., 0., 0., 0., 747., 753., 759., 765., 771., 777., 783., 4824.};
  const std::array<int, 4> in_shape = {{1, 13, 13, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x13x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 1., 2., 3., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      4., 5., 6., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 7., 8., 9.};
  const std::array<int, 4> in_shape = {{1, 13, 13, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x13x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      1.,    2.,    3.,    4.,    5.,    6.,    7.,    8.,    9.,    10.,
      11.,   12.,   13.,   14.,   120.,  126.,  0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    27.,   28.,   29.,   30.,
      31.,   32.,   33.,   34.,   35.,   36.,   37.,   38.,   39.,   40.,
      276.,  282.,  0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    53.,   54.,   55.,   56.,   57.,   58.,   59.,   60.,
      61.,   62.,   63.,   64.,   65.,   66.,   432.,  438.,  0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    79.,   80.,
      81.,   82.,   83.,   84.,   85.,   86.,   87.,   88.,   89.,   90.,
      91.,   92.,   588.,  594.,  0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    105.,  106.,  107.,  108.,  109.,  110.,
      111.,  112.,  113.,  114.,  115.,  116.,  117.,  118.,  744.,  750.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      131.,  132.,  133.,  134.,  135.,  136.,  137.,  138.,  139.,  140.,
      141.,  142.,  143.,  144.,  900.,  906.,  0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    157.,  158.,  159.,  160.,
      161.,  162.,  163.,  164.,  165.,  166.,  167.,  168.,  169.,  170.,
      1056., 1062., 0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    1488., 1494., 1500., 1506., 1512., 1518., 1524., 1530.,
      1536., 1542., 1548., 1554., 1560., 1566., 9612., 9648.};
  const std::array<int, 4> in_shape = {{1, 13, 13, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x13x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  1., 2., 3., 4., 5.,  6.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0., 7., 8., 9., 10., 11., 12., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 13., 14., 15., 16.,
      17., 18.};
  const std::array<int, 4> in_shape = {{1, 13, 13, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x13x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      1.,    2.,    3.,     4.,     5.,     6.,    7.,    8.,    9.,    10.,
      11.,   12.,   13.,    14.,    15.,    16.,   17.,   18.,   19.,   20.,
      21.,   22.,   23.,    24.,    25.,    26.,   27.,   28.,   234.,  240.,
      246.,  252.,  0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    53.,    54.,    55.,    56.,   57.,   58.,   59.,   60.,
      61.,   62.,   63.,    64.,    65.,    66.,   67.,   68.,   69.,   70.,
      71.,   72.,   73.,    74.,    75.,    76.,   77.,   78.,   79.,   80.,
      546.,  552.,  558.,   564.,   0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     105.,   106.,  107.,  108.,  109.,  110.,
      111.,  112.,  113.,   114.,   115.,   116.,  117.,  118.,  119.,  120.,
      121.,  122.,  123.,   124.,   125.,   126.,  127.,  128.,  129.,  130.,
      131.,  132.,  858.,   864.,   870.,   876.,  0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    157.,  158.,  159.,  160.,
      161.,  162.,  163.,   164.,   165.,   166.,  167.,  168.,  169.,  170.,
      171.,  172.,  173.,   174.,   175.,   176.,  177.,  178.,  179.,  180.,
      181.,  182.,  183.,   184.,   1170.,  1176., 1182., 1188., 0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    209.,  210.,
      211.,  212.,  213.,   214.,   215.,   216.,  217.,  218.,  219.,  220.,
      221.,  222.,  223.,   224.,   225.,   226.,  227.,  228.,  229.,  230.,
      231.,  232.,  233.,   234.,   235.,   236.,  1482., 1488., 1494., 1500.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      261.,  262.,  263.,   264.,   265.,   266.,  267.,  268.,  269.,  270.,
      271.,  272.,  273.,   274.,   275.,   276.,  277.,  278.,  279.,  280.,
      281.,  282.,  283.,   284.,   285.,   286.,  287.,  288.,  1794., 1800.,
      1806., 1812., 0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    313.,   314.,   315.,   316.,  317.,  318.,  319.,  320.,
      321.,  322.,  323.,   324.,   325.,   326.,  327.,  328.,  329.,  330.,
      331.,  332.,  333.,   334.,   335.,   336.,  337.,  338.,  339.,  340.,
      2106., 2112., 2118.,  2124.,  0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     2970.,  2976., 2982., 2988., 2994., 3000.,
      3006., 3012., 3018.,  3024.,  3030.,  3036., 3042., 3048., 3054., 3060.,
      3066., 3072., 3078.,  3084.,  3090.,  3096., 3102., 3108., 3114., 3120.,
      3126., 3132., 19188., 19224., 19260., 19296.};
  const std::array<int, 4> in_shape = {{1, 13, 13, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x13x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9.,  10.,
      11., 12., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  13., 14., 15.,
      16., 17., 18., 19., 20., 21., 22., 23., 24., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  25., 26., 27., 28., 29., 30., 31., 32., 33., 34., 35.,
      36.};
  const std::array<int, 4> in_shape = {{1, 13, 13, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x13x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,   0.,   0.,  0.,   0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0.,   0.,   0.,  0.,   0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0.,   0.,   0.,  0.,   0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0.,   0.,   0.,  0.,   0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0.,   0.,   0.,  0.,   0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0.,   0.,   0.,  0.,   0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0.,   0.,   0.,  1.,   2.,  3.,   4.,   5.,   6.,   7.,   8.,   69.,
      0.,   0.,   0.,  0.,   0.,  15.,  16.,  17.,  18.,  19.,  20.,  21.,
      22.,  153., 0.,  0.,   0.,  0.,   0.,   29.,  30.,  31.,  32.,  33.,
      34.,  35.,  36., 237., 0.,  0.,   0.,   0.,   0.,   43.,  44.,  45.,
      46.,  47.,  48., 49.,  50., 321., 0.,   0.,   0.,   0.,   0.,   57.,
      58.,  59.,  60., 61.,  62., 63.,  64.,  405., 0.,   0.,   0.,   0.,
      0.,   71.,  72., 73.,  74., 75.,  76.,  77.,  78.,  489., 0.,   0.,
      0.,   0.,   0.,  85.,  86., 87.,  88.,  89.,  90.,  91.,  92.,  573.,
      0.,   0.,   0.,  0.,   0.,  804., 810., 816., 822., 828., 834., 840.,
      846., 5202.};
  const std::array<int, 4> in_shape = {{1, 13, 14, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x13x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0., 0., 0., 1., 2., 3.,
      4., 0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  5., 6., 7., 8., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 9., 10., 11., 12.};
  const std::array<int, 4> in_shape = {{1, 13, 14, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x13x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      1.,    2.,    3.,     4.,    5.,    6.,    7.,    8.,    9.,    10.,
      11.,   12.,   13.,    14.,   15.,   16.,   132.,  138.,  0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    29.,   30.,
      31.,   32.,   33.,    34.,   35.,   36.,   37.,   38.,   39.,   40.,
      41.,   42.,   43.,    44.,   300.,  306.,  0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    57.,   58.,   59.,   60.,
      61.,   62.,   63.,    64.,   65.,   66.,   67.,   68.,   69.,   70.,
      71.,   72.,   468.,   474.,  0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    85.,   86.,   87.,   88.,   89.,   90.,
      91.,   92.,   93.,    94.,   95.,   96.,   97.,   98.,   99.,   100.,
      636.,  642.,  0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    113.,   114.,  115.,  116.,  117.,  118.,  119.,  120.,
      121.,  122.,  123.,   124.,  125.,  126.,  127.,  128.,  804.,  810.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      141.,  142.,  143.,   144.,  145.,  146.,  147.,  148.,  149.,  150.,
      151.,  152.,  153.,   154.,  155.,  156.,  972.,  978.,  0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    169.,  170.,
      171.,  172.,  173.,   174.,  175.,  176.,  177.,  178.,  179.,  180.,
      181.,  182.,  183.,   184.,  1140., 1146., 0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    1602., 1608., 1614., 1620.,
      1626., 1632., 1638.,  1644., 1650., 1656., 1662., 1668., 1674., 1680.,
      1686., 1692., 10368., 10404.};
  const std::array<int, 4> in_shape = {{1, 13, 14, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x13x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      1.,  2.,  3.,  4.,  5.,  6.,  7., 8., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0.,  0.,  9.,  10.,
      11., 12., 13., 14., 15., 16., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 17., 18., 19., 20.,
      21., 22., 23., 24.};
  const std::array<int, 4> in_shape = {{1, 13, 14, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x13x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      1.,    2.,    3.,    4.,    5.,     6.,     7.,     8.,    9.,    10.,
      11.,   12.,   13.,   14.,   15.,    16.,    17.,    18.,   19.,   20.,
      21.,   22.,   23.,   24.,   25.,    26.,    27.,    28.,   29.,   30.,
      31.,   32.,   258.,  264.,  270.,   276.,   0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     57.,    58.,   59.,   60.,
      61.,   62.,   63.,   64.,   65.,    66.,    67.,    68.,   69.,   70.,
      71.,   72.,   73.,   74.,   75.,    76.,    77.,    78.,   79.,   80.,
      81.,   82.,   83.,   84.,   85.,    86.,    87.,    88.,   594.,  600.,
      606.,  612.,  0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    113.,  114.,  115.,   116.,   117.,   118.,  119.,  120.,
      121.,  122.,  123.,  124.,  125.,   126.,   127.,   128.,  129.,  130.,
      131.,  132.,  133.,  134.,  135.,   136.,   137.,   138.,  139.,  140.,
      141.,  142.,  143.,  144.,  930.,   936.,   942.,   948.,  0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    169.,  170.,
      171.,  172.,  173.,  174.,  175.,   176.,   177.,   178.,  179.,  180.,
      181.,  182.,  183.,  184.,  185.,   186.,   187.,   188.,  189.,  190.,
      191.,  192.,  193.,  194.,  195.,   196.,   197.,   198.,  199.,  200.,
      1266., 1272., 1278., 1284., 0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    225.,   226.,   227.,   228.,  229.,  230.,
      231.,  232.,  233.,  234.,  235.,   236.,   237.,   238.,  239.,  240.,
      241.,  242.,  243.,  244.,  245.,   246.,   247.,   248.,  249.,  250.,
      251.,  252.,  253.,  254.,  255.,   256.,   1602.,  1608., 1614., 1620.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      281.,  282.,  283.,  284.,  285.,   286.,   287.,   288.,  289.,  290.,
      291.,  292.,  293.,  294.,  295.,   296.,   297.,   298.,  299.,  300.,
      301.,  302.,  303.,  304.,  305.,   306.,   307.,   308.,  309.,  310.,
      311.,  312.,  1938., 1944., 1950.,  1956.,  0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     337.,   338.,  339.,  340.,
      341.,  342.,  343.,  344.,  345.,   346.,   347.,   348.,  349.,  350.,
      351.,  352.,  353.,  354.,  355.,   356.,   357.,   358.,  359.,  360.,
      361.,  362.,  363.,  364.,  365.,   366.,   367.,   368.,  2274., 2280.,
      2286., 2292., 0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    3198., 3204., 3210.,  3216.,  3222.,  3228., 3234., 3240.,
      3246., 3252., 3258., 3264., 3270.,  3276.,  3282.,  3288., 3294., 3300.,
      3306., 3312., 3318., 3324., 3330.,  3336.,  3342.,  3348., 3354., 3360.,
      3366., 3372., 3378., 3384., 20700., 20736., 20772., 20808.};
  const std::array<int, 4> in_shape = {{1, 13, 14, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x13x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9.,  10., 11., 12., 13., 14., 15.,
      16., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  17., 18., 19., 20.,
      21., 22., 23., 24., 25., 26., 27., 28., 29., 30., 31., 32., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  33., 34., 35., 36., 37., 38., 39., 40.,
      41., 42., 43., 44., 45., 46., 47., 48.};
  const std::array<int, 4> in_shape = {{1, 13, 14, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x14x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 1.,   2.,   3.,   4.,   5.,   6.,   57.,
      0., 0., 0., 0., 0., 13.,  14.,  15.,  16.,  17.,  18.,  129.,
      0., 0., 0., 0., 0., 25.,  26.,  27.,  28.,  29.,  30.,  201.,
      0., 0., 0., 0., 0., 37.,  38.,  39.,  40.,  41.,  42.,  273.,
      0., 0., 0., 0., 0., 49.,  50.,  51.,  52.,  53.,  54.,  345.,
      0., 0., 0., 0., 0., 61.,  62.,  63.,  64.,  65.,  66.,  417.,
      0., 0., 0., 0., 0., 73.,  74.,  75.,  76.,  77.,  78.,  489.,
      0., 0., 0., 0., 0., 85.,  86.,  87.,  88.,  89.,  90.,  561.,
      0., 0., 0., 0., 0., 762., 768., 774., 780., 786., 792., 4878.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x14x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 2., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 3., 4., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 5., 6., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 7., 8.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x14x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      1.,    2.,    3.,    4.,    5.,    6.,    7.,    8.,    9.,    10.,
      11.,   12.,   108.,  114.,  0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    25.,   26.,   27.,   28.,   29.,   30.,
      31.,   32.,   33.,   34.,   35.,   36.,   252.,  258.,  0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    49.,   50.,
      51.,   52.,   53.,   54.,   55.,   56.,   57.,   58.,   59.,   60.,
      396.,  402.,  0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    73.,   74.,   75.,   76.,   77.,   78.,   79.,   80.,
      81.,   82.,   83.,   84.,   540.,  546.,  0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    97.,   98.,   99.,   100.,
      101.,  102.,  103.,  104.,  105.,  106.,  107.,  108.,  684.,  690.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      121.,  122.,  123.,  124.,  125.,  126.,  127.,  128.,  129.,  130.,
      131.,  132.,  828.,  834.,  0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    145.,  146.,  147.,  148.,  149.,  150.,
      151.,  152.,  153.,  154.,  155.,  156.,  972.,  978.,  0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    169.,  170.,
      171.,  172.,  173.,  174.,  175.,  176.,  177.,  178.,  179.,  180.,
      1116., 1122., 0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    1518., 1524., 1530., 1536., 1542., 1548., 1554., 1560.,
      1566., 1572., 1578., 1584., 9720., 9756.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x14x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  1.,  2., 3., 4., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  5., 6., 7., 8., 0.,
      0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 9., 10., 11., 12., 0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0.,  0.,  0.,  0., 0., 0., 13., 14., 15., 16.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x14x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      1.,     2.,    3.,    4.,    5.,    6.,    7.,    8.,    9.,     10.,
      11.,    12.,   13.,   14.,   15.,   16.,   17.,   18.,   19.,    20.,
      21.,    22.,   23.,   24.,   210.,  216.,  222.,  228.,  0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    49.,    50.,
      51.,    52.,   53.,   54.,   55.,   56.,   57.,   58.,   59.,    60.,
      61.,    62.,   63.,   64.,   65.,   66.,   67.,   68.,   69.,    70.,
      71.,    72.,   498.,  504.,  510.,  516.,  0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    97.,   98.,   99.,    100.,
      101.,   102.,  103.,  104.,  105.,  106.,  107.,  108.,  109.,   110.,
      111.,   112.,  113.,  114.,  115.,  116.,  117.,  118.,  119.,   120.,
      786.,   792.,  798.,  804.,  0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    145.,  146.,  147.,  148.,  149.,   150.,
      151.,   152.,  153.,  154.,  155.,  156.,  157.,  158.,  159.,   160.,
      161.,   162.,  163.,  164.,  165.,  166.,  167.,  168.,  1074.,  1080.,
      1086.,  1092., 0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    193.,  194.,  195.,  196.,  197.,  198.,  199.,   200.,
      201.,   202.,  203.,  204.,  205.,  206.,  207.,  208.,  209.,   210.,
      211.,   212.,  213.,  214.,  215.,  216.,  1362., 1368., 1374.,  1380.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      241.,   242.,  243.,  244.,  245.,  246.,  247.,  248.,  249.,   250.,
      251.,   252.,  253.,  254.,  255.,  256.,  257.,  258.,  259.,   260.,
      261.,   262.,  263.,  264.,  1650., 1656., 1662., 1668., 0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    289.,   290.,
      291.,   292.,  293.,  294.,  295.,  296.,  297.,  298.,  299.,   300.,
      301.,   302.,  303.,  304.,  305.,  306.,  307.,  308.,  309.,   310.,
      311.,   312.,  1938., 1944., 1950., 1956., 0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    337.,  338.,  339.,   340.,
      341.,   342.,  343.,  344.,  345.,  346.,  347.,  348.,  349.,   350.,
      351.,   352.,  353.,  354.,  355.,  356.,  357.,  358.,  359.,   360.,
      2226.,  2232., 2238., 2244., 0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,
      0.,     0.,    0.,    0.,    3030., 3036., 3042., 3048., 3054.,  3060.,
      3066.,  3072., 3078., 3084., 3090., 3096., 3102., 3108., 3114.,  3120.,
      3126.,  3132., 3138., 3144., 3150., 3156., 3162., 3168., 19404., 19440.,
      19476., 19512.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x14x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 9.,  10., 11., 12., 13., 14., 15., 16.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 17., 18., 19., 20., 21., 22., 23., 24.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 25., 26., 27., 28., 29., 30., 31., 32.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x14x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0., 0., 0., 0., 1.,   2.,   3.,   4.,   5.,   6.,   7.,   63.,
      0., 0., 0., 0., 0., 14.,  15.,  16.,  17.,  18.,  19.,  20.,  141.,
      0., 0., 0., 0., 0., 27.,  28.,  29.,  30.,  31.,  32.,  33.,  219.,
      0., 0., 0., 0., 0., 40.,  41.,  42.,  43.,  44.,  45.,  46.,  297.,
      0., 0., 0., 0., 0., 53.,  54.,  55.,  56.,  57.,  58.,  59.,  375.,
      0., 0., 0., 0., 0., 66.,  67.,  68.,  69.,  70.,  71.,  72.,  453.,
      0., 0., 0., 0., 0., 79.,  80.,  81.,  82.,  83.,  84.,  85.,  531.,
      0., 0., 0., 0., 0., 92.,  93.,  94.,  95.,  96.,  97.,  98.,  609.,
      0., 0., 0., 0., 0., 825., 831., 837., 843., 849., 855., 861., 5292.};
  const std::array<int, 4> in_shape = {{1, 14, 13, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x14x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 1., 2., 3., 0., 0., 0.,  0.,  0., 0., 0., 0., 0., 0.,
      4., 5., 6., 0., 0., 0., 0., 0., 0., 0.,  0.,  0., 0., 7., 8., 9., 0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0., 10., 11., 12.};
  const std::array<int, 4> in_shape = {{1, 14, 13, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x14x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      1.,    2.,    3.,     4.,    5.,    6.,    7.,    8.,    9.,    10.,
      11.,   12.,   13.,    14.,   120.,  126.,  0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    27.,   28.,   29.,   30.,
      31.,   32.,   33.,    34.,   35.,   36.,   37.,   38.,   39.,   40.,
      276.,  282.,  0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    53.,    54.,   55.,   56.,   57.,   58.,   59.,   60.,
      61.,   62.,   63.,    64.,   65.,   66.,   432.,  438.,  0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    79.,   80.,
      81.,   82.,   83.,    84.,   85.,   86.,   87.,   88.,   89.,   90.,
      91.,   92.,   588.,   594.,  0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    105.,  106.,  107.,  108.,  109.,  110.,
      111.,  112.,  113.,   114.,  115.,  116.,  117.,  118.,  744.,  750.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      131.,  132.,  133.,   134.,  135.,  136.,  137.,  138.,  139.,  140.,
      141.,  142.,  143.,   144.,  900.,  906.,  0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    157.,  158.,  159.,  160.,
      161.,  162.,  163.,   164.,  165.,  166.,  167.,  168.,  169.,  170.,
      1056., 1062., 0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    183.,   184.,  185.,  186.,  187.,  188.,  189.,  190.,
      191.,  192.,  193.,   194.,  195.,  196.,  1212., 1218., 0.,    0.,
      0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    1644., 1650.,
      1656., 1662., 1668.,  1674., 1680., 1686., 1692., 1698., 1704., 1710.,
      1716., 1722., 10548., 10584.};
  const std::array<int, 4> in_shape = {{1, 14, 13, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x14x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  1.,  2.,  3., 4.,  5.,
      6.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  7.,  8.,  9., 10., 11., 12., 0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  13., 14., 15., 16., 17., 18., 0., 0.,  0.,  0.,  0., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 19., 20.,
      21., 22., 23., 24.};
  const std::array<int, 4> in_shape = {{1, 14, 13, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x14x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      1.,    2.,    3.,    4.,    5.,     6.,     7.,     8.,    9.,    10.,
      11.,   12.,   13.,   14.,   15.,    16.,    17.,    18.,   19.,   20.,
      21.,   22.,   23.,   24.,   25.,    26.,    27.,    28.,   234.,  240.,
      246.,  252.,  0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    53.,   54.,   55.,    56.,    57.,    58.,   59.,   60.,
      61.,   62.,   63.,   64.,   65.,    66.,    67.,    68.,   69.,   70.,
      71.,   72.,   73.,   74.,   75.,    76.,    77.,    78.,   79.,   80.,
      546.,  552.,  558.,  564.,  0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    105.,   106.,   107.,   108.,  109.,  110.,
      111.,  112.,  113.,  114.,  115.,   116.,   117.,   118.,  119.,  120.,
      121.,  122.,  123.,  124.,  125.,   126.,   127.,   128.,  129.,  130.,
      131.,  132.,  858.,  864.,  870.,   876.,   0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     157.,   158.,  159.,  160.,
      161.,  162.,  163.,  164.,  165.,   166.,   167.,   168.,  169.,  170.,
      171.,  172.,  173.,  174.,  175.,   176.,   177.,   178.,  179.,  180.,
      181.,  182.,  183.,  184.,  1170.,  1176.,  1182.,  1188., 0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    209.,  210.,
      211.,  212.,  213.,  214.,  215.,   216.,   217.,   218.,  219.,  220.,
      221.,  222.,  223.,  224.,  225.,   226.,   227.,   228.,  229.,  230.,
      231.,  232.,  233.,  234.,  235.,   236.,   1482.,  1488., 1494., 1500.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      261.,  262.,  263.,  264.,  265.,   266.,   267.,   268.,  269.,  270.,
      271.,  272.,  273.,  274.,  275.,   276.,   277.,   278.,  279.,  280.,
      281.,  282.,  283.,  284.,  285.,   286.,   287.,   288.,  1794., 1800.,
      1806., 1812., 0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    313.,  314.,  315.,   316.,   317.,   318.,  319.,  320.,
      321.,  322.,  323.,  324.,  325.,   326.,   327.,   328.,  329.,  330.,
      331.,  332.,  333.,  334.,  335.,   336.,   337.,   338.,  339.,  340.,
      2106., 2112., 2118., 2124., 0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    365.,   366.,   367.,   368.,  369.,  370.,
      371.,  372.,  373.,  374.,  375.,   376.,   377.,   378.,  379.,  380.,
      381.,  382.,  383.,  384.,  385.,   386.,   387.,   388.,  389.,  390.,
      391.,  392.,  2418., 2424., 2430.,  2436.,  0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,     0.,     3282.,  3288., 3294., 3300.,
      3306., 3312., 3318., 3324., 3330.,  3336.,  3342.,  3348., 3354., 3360.,
      3366., 3372., 3378., 3384., 3390.,  3396.,  3402.,  3408., 3414., 3420.,
      3426., 3432., 3438., 3444., 21060., 21096., 21132., 21168.};
  const std::array<int, 4> in_shape = {{1, 14, 13, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x14x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9.,  10.,
      11., 12., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  13., 14., 15.,
      16., 17., 18., 19., 20., 21., 22., 23., 24., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  25., 26., 27., 28., 29., 30., 31., 32., 33., 34., 35.,
      36., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  37., 38., 39., 40.,
      41., 42., 43., 44., 45., 46., 47., 48.};
  const std::array<int, 4> in_shape = {{1, 14, 13, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x14x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,   0.,  0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0.,   0.,  0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0.,   0.,  0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0.,   0.,  0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0.,   0.,  0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0.,   0.,  0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   1.,   2.,   3.,
      4.,   5.,  6.,  7.,  8.,  69.,  0.,   0.,   0.,   0.,   0.,   15.,  16.,
      17.,  18., 19., 20., 21., 22.,  153., 0.,   0.,   0.,   0.,   0.,   29.,
      30.,  31., 32., 33., 34., 35.,  36.,  237., 0.,   0.,   0.,   0.,   0.,
      43.,  44., 45., 46., 47., 48.,  49.,  50.,  321., 0.,   0.,   0.,   0.,
      0.,   57., 58., 59., 60., 61.,  62.,  63.,  64.,  405., 0.,   0.,   0.,
      0.,   0.,  71., 72., 73., 74.,  75.,  76.,  77.,  78.,  489., 0.,   0.,
      0.,   0.,  0.,  85., 86., 87.,  88.,  89.,  90.,  91.,  92.,  573., 0.,
      0.,   0.,  0.,  0.,  99., 100., 101., 102., 103., 104., 105., 106., 657.,
      0.,   0.,  0.,  0.,  0.,  888., 894., 900., 906., 912., 918., 924., 930.,
      5706.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x14x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0.,  0.,  0., 0.,  0.,  0.,  0., 0., 1., 2., 3.,
      4., 0., 0., 0., 0., 0.,  0.,  0.,  0., 0.,  0.,  5.,  6., 7., 8., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0.,  0.,  9., 10., 11., 12., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 13., 14., 15., 16.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x14x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      1.,     2.,    3.,    4.,    5.,    6.,    7.,    8.,    9.,    10.,
      11.,    12.,   13.,   14.,   15.,   16.,   132.,  138.,  0.,    0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    29.,   30.,
      31.,    32.,   33.,   34.,   35.,   36.,   37.,   38.,   39.,   40.,
      41.,    42.,   43.,   44.,   300.,  306.,  0.,    0.,    0.,    0.,
      0.,     0.,    0.,    0.,    0.,    0.,    57.,   58.,   59.,   60.,
      61.,    62.,   63.,   64.,   65.,   66.,   67.,   68.,   69.,   70.,
      71.,    72.,   468.,  474.,  0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,    0.,    0.,    85.,   86.,   87.,   88.,   89.,   90.,
      91.,    92.,   93.,   94.,   95.,   96.,   97.,   98.,   99.,   100.,
      636.,   642.,  0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,    113.,  114.,  115.,  116.,  117.,  118.,  119.,  120.,
      121.,   122.,  123.,  124.,  125.,  126.,  127.,  128.,  804.,  810.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      141.,   142.,  143.,  144.,  145.,  146.,  147.,  148.,  149.,  150.,
      151.,   152.,  153.,  154.,  155.,  156.,  972.,  978.,  0.,    0.,
      0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    169.,  170.,
      171.,   172.,  173.,  174.,  175.,  176.,  177.,  178.,  179.,  180.,
      181.,   182.,  183.,  184.,  1140., 1146., 0.,    0.,    0.,    0.,
      0.,     0.,    0.,    0.,    0.,    0.,    197.,  198.,  199.,  200.,
      201.,   202.,  203.,  204.,  205.,  206.,  207.,  208.,  209.,  210.,
      211.,   212.,  1308., 1314., 0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,    0.,    0.,    1770., 1776., 1782., 1788., 1794., 1800.,
      1806.,  1812., 1818., 1824., 1830., 1836., 1842., 1848., 1854., 1860.,
      11376., 11412.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x14x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      1.,  2.,  3.,  4.,  5.,  6.,  7., 8., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  9.,  10.,
      11., 12., 13., 14., 15., 16., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0.,  0.,  17., 18., 19., 20.,
      21., 22., 23., 24., 0.,  0.,  0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 25., 26., 27., 28., 29., 30.,
      31., 32.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME1x14x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      1.,     2.,     3.,     4.,    5.,    6.,    7.,    8.,    9.,    10.,
      11.,    12.,    13.,    14.,   15.,   16.,   17.,   18.,   19.,   20.,
      21.,    22.,    23.,    24.,   25.,   26.,   27.,   28.,   29.,   30.,
      31.,    32.,    258.,   264.,  270.,  276.,  0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    57.,   58.,   59.,   60.,
      61.,    62.,    63.,    64.,   65.,   66.,   67.,   68.,   69.,   70.,
      71.,    72.,    73.,    74.,   75.,   76.,   77.,   78.,   79.,   80.,
      81.,    82.,    83.,    84.,   85.,   86.,   87.,   88.,   594.,  600.,
      606.,   612.,   0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     113.,   114.,  115.,  116.,  117.,  118.,  119.,  120.,
      121.,   122.,   123.,   124.,  125.,  126.,  127.,  128.,  129.,  130.,
      131.,   132.,   133.,   134.,  135.,  136.,  137.,  138.,  139.,  140.,
      141.,   142.,   143.,   144.,  930.,  936.,  942.,  948.,  0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    169.,  170.,
      171.,   172.,   173.,   174.,  175.,  176.,  177.,  178.,  179.,  180.,
      181.,   182.,   183.,   184.,  185.,  186.,  187.,  188.,  189.,  190.,
      191.,   192.,   193.,   194.,  195.,  196.,  197.,  198.,  199.,  200.,
      1266.,  1272.,  1278.,  1284., 0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    225.,  226.,  227.,  228.,  229.,  230.,
      231.,   232.,   233.,   234.,  235.,  236.,  237.,  238.,  239.,  240.,
      241.,   242.,   243.,   244.,  245.,  246.,  247.,  248.,  249.,  250.,
      251.,   252.,   253.,   254.,  255.,  256.,  1602., 1608., 1614., 1620.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      281.,   282.,   283.,   284.,  285.,  286.,  287.,  288.,  289.,  290.,
      291.,   292.,   293.,   294.,  295.,  296.,  297.,  298.,  299.,  300.,
      301.,   302.,   303.,   304.,  305.,  306.,  307.,  308.,  309.,  310.,
      311.,   312.,   1938.,  1944., 1950., 1956., 0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    337.,  338.,  339.,  340.,
      341.,   342.,   343.,   344.,  345.,  346.,  347.,  348.,  349.,  350.,
      351.,   352.,   353.,   354.,  355.,  356.,  357.,  358.,  359.,  360.,
      361.,   362.,   363.,   364.,  365.,  366.,  367.,  368.,  2274., 2280.,
      2286.,  2292.,  0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     393.,   394.,  395.,  396.,  397.,  398.,  399.,  400.,
      401.,   402.,   403.,   404.,  405.,  406.,  407.,  408.,  409.,  410.,
      411.,   412.,   413.,   414.,  415.,  416.,  417.,  418.,  419.,  420.,
      421.,   422.,   423.,   424.,  2610., 2616., 2622., 2628., 0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,    3534., 3540.,
      3546.,  3552.,  3558.,  3564., 3570., 3576., 3582., 3588., 3594., 3600.,
      3606.,  3612.,  3618.,  3624., 3630., 3636., 3642., 3648., 3654., 3660.,
      3666.,  3672.,  3678.,  3684., 3690., 3696., 3702., 3708., 3714., 3720.,
      22716., 22752., 22788., 22824.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID1x14x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9.,  10., 11., 12., 13., 14., 15.,
      16., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  17., 18., 19., 20.,
      21., 22., 23., 24., 25., 26., 27., 28., 29., 30., 31., 32., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  33., 34., 35., 36., 37., 38., 39., 40.,
      41., 42., 43., 44., 45., 46., 47., 48., 0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  49., 50., 51., 52., 53., 54., 55., 56., 57., 58., 59., 60.,
      61., 62., 63., 64.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x12x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 1.,    2.,    3.,    4.,    5.,    6.,    57.,
      0., 0., 0., 0., 0., 13.,   14.,   15.,   16.,   17.,   18.,   129.,
      0., 0., 0., 0., 0., 25.,   26.,   27.,   28.,   29.,   30.,   201.,
      0., 0., 0., 0., 0., 37.,   38.,   39.,   40.,   41.,   42.,   273.,
      0., 0., 0., 0., 0., 49.,   50.,   51.,   52.,   53.,   54.,   345.,
      0., 0., 0., 0., 0., 61.,   62.,   63.,   64.,   65.,   66.,   417.,
      0., 0., 0., 0., 0., 618.,  624.,  630.,  636.,  642.,  648.,  4014.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 145.,  146.,  147.,  148.,  149.,  150.,  921.,
      0., 0., 0., 0., 0., 157.,  158.,  159.,  160.,  161.,  162.,  993.,
      0., 0., 0., 0., 0., 169.,  170.,  171.,  172.,  173.,  174.,  1065.,
      0., 0., 0., 0., 0., 181.,  182.,  183.,  184.,  185.,  186.,  1137.,
      0., 0., 0., 0., 0., 193.,  194.,  195.,  196.,  197.,  198.,  1209.,
      0., 0., 0., 0., 0., 205.,  206.,  207.,  208.,  209.,  210.,  1281.,
      0., 0., 0., 0., 0., 1482., 1488., 1494., 1500., 1506., 1512., 9198.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 289.,  290.,  291.,  292.,  293.,  294.,  1785.,
      0., 0., 0., 0., 0., 301.,  302.,  303.,  304.,  305.,  306.,  1857.,
      0., 0., 0., 0., 0., 313.,  314.,  315.,  316.,  317.,  318.,  1929.,
      0., 0., 0., 0., 0., 325.,  326.,  327.,  328.,  329.,  330.,  2001.,
      0., 0., 0., 0., 0., 337.,  338.,  339.,  340.,  341.,  342.,  2073.,
      0., 0., 0., 0., 0., 349.,  350.,  351.,  352.,  353.,  354.,  2145.,
      0., 0., 0., 0., 0., 2346., 2352., 2358., 2364., 2370., 2376., 14382.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x12x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 1.,  2., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  3., 4., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 5., 6., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 7., 8., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 0.,  0., 0., 0., 0., 9., 10., 0., 0., 0., 0., 0.,
      0., 0., 0., 0., 0., 11., 12.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x12x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      1.,    2.,    3.,     4.,    5.,     6.,     7.,    8.,    9.,    10.,
      11.,   12.,   108.,   114.,  0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    25.,    26.,    27.,   28.,   29.,   30.,
      31.,   32.,   33.,    34.,   35.,    36.,    252.,  258.,  0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    49.,   50.,
      51.,   52.,   53.,    54.,   55.,    56.,    57.,   58.,   59.,   60.,
      396.,  402.,  0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    73.,    74.,   75.,    76.,    77.,   78.,   79.,   80.,
      81.,   82.,   83.,    84.,   540.,   546.,   0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     97.,   98.,   99.,   100.,
      101.,  102.,  103.,   104.,  105.,   106.,   107.,  108.,  684.,  690.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      121.,  122.,  123.,   124.,  125.,   126.,   127.,  128.,  129.,  130.,
      131.,  132.,  828.,   834.,  0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    1230.,  1236.,  1242., 1248., 1254., 1260.,
      1266., 1272., 1278.,  1284., 1290.,  1296.,  7992., 8028., 0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    289.,  290.,
      291.,  292.,  293.,   294.,  295.,   296.,   297.,  298.,  299.,  300.,
      1836., 1842., 0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    313.,   314.,  315.,   316.,   317.,  318.,  319.,  320.,
      321.,  322.,  323.,   324.,  1980.,  1986.,  0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     337.,  338.,  339.,  340.,
      341.,  342.,  343.,   344.,  345.,   346.,   347.,  348.,  2124., 2130.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      361.,  362.,  363.,   364.,  365.,   366.,   367.,  368.,  369.,  370.,
      371.,  372.,  2268.,  2274., 0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    385.,   386.,   387.,  388.,  389.,  390.,
      391.,  392.,  393.,   394.,  395.,   396.,   2412., 2418., 0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    409.,  410.,
      411.,  412.,  413.,   414.,  415.,   416.,   417.,  418.,  419.,  420.,
      2556., 2562., 0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    2958.,  2964., 2970.,  2976.,  2982., 2988., 2994., 3000.,
      3006., 3012., 3018.,  3024., 18360., 18396., 0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     577.,  578.,  579.,  580.,
      581.,  582.,  583.,   584.,  585.,   586.,   587.,  588.,  3564., 3570.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      601.,  602.,  603.,   604.,  605.,   606.,   607.,  608.,  609.,  610.,
      611.,  612.,  3708.,  3714., 0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    625.,   626.,   627.,  628.,  629.,  630.,
      631.,  632.,  633.,   634.,  635.,   636.,   3852., 3858., 0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    649.,  650.,
      651.,  652.,  653.,   654.,  655.,   656.,   657.,  658.,  659.,  660.,
      3996., 4002., 0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    673.,   674.,  675.,   676.,   677.,  678.,  679.,  680.,
      681.,  682.,  683.,   684.,  4140.,  4146.,  0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     697.,  698.,  699.,  700.,
      701.,  702.,  703.,   704.,  705.,   706.,   707.,  708.,  4284., 4290.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      4686., 4692., 4698.,  4704., 4710.,  4716.,  4722., 4728., 4734., 4740.,
      4746., 4752., 28728., 28764.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x12x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 1.,  2.,  3.,  4.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 5.,  6.,  7.,  8.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 9.,  10., 11., 12., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 13., 14., 15., 16.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 17., 18., 19., 20., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 21., 22., 23., 24.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x12x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     1.,
      2.,    3.,    4.,    5.,    6.,    7.,     8.,     9.,     10.,
      11.,   12.,   13.,   14.,   15.,   16.,    17.,    18.,    19.,
      20.,   21.,   22.,   23.,   24.,   210.,   216.,   222.,   228.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    49.,   50.,   51.,   52.,    53.,    54.,    55.,
      56.,   57.,   58.,   59.,   60.,   61.,    62.,    63.,    64.,
      65.,   66.,   67.,   68.,   69.,   70.,    71.,    72.,    498.,
      504.,  510.,  516.,  0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    97.,    98.,    99.,    100.,
      101.,  102.,  103.,  104.,  105.,  106.,   107.,   108.,   109.,
      110.,  111.,  112.,  113.,  114.,  115.,   116.,   117.,   118.,
      119.,  120.,  786.,  792.,  798.,  804.,   0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     145.,
      146.,  147.,  148.,  149.,  150.,  151.,   152.,   153.,   154.,
      155.,  156.,  157.,  158.,  159.,  160.,   161.,   162.,   163.,
      164.,  165.,  166.,  167.,  168.,  1074.,  1080.,  1086.,  1092.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    193.,  194.,  195.,  196.,   197.,   198.,   199.,
      200.,  201.,  202.,  203.,  204.,  205.,   206.,   207.,   208.,
      209.,  210.,  211.,  212.,  213.,  214.,   215.,   216.,   1362.,
      1368., 1374., 1380., 0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    241.,   242.,   243.,   244.,
      245.,  246.,  247.,  248.,  249.,  250.,   251.,   252.,   253.,
      254.,  255.,  256.,  257.,  258.,  259.,   260.,   261.,   262.,
      263.,  264.,  1650., 1656., 1662., 1668.,  0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     2454.,
      2460., 2466., 2472., 2478., 2484., 2490.,  2496.,  2502.,  2508.,
      2514., 2520., 2526., 2532., 2538., 2544.,  2550.,  2556.,  2562.,
      2568., 2574., 2580., 2586., 2592., 15948., 15984., 16020., 16056.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     577.,
      578.,  579.,  580.,  581.,  582.,  583.,   584.,   585.,   586.,
      587.,  588.,  589.,  590.,  591.,  592.,   593.,   594.,   595.,
      596.,  597.,  598.,  599.,  600.,  3666.,  3672.,  3678.,  3684.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    625.,  626.,  627.,  628.,   629.,   630.,   631.,
      632.,  633.,  634.,  635.,  636.,  637.,   638.,   639.,   640.,
      641.,  642.,  643.,  644.,  645.,  646.,   647.,   648.,   3954.,
      3960., 3966., 3972., 0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    673.,   674.,   675.,   676.,
      677.,  678.,  679.,  680.,  681.,  682.,   683.,   684.,   685.,
      686.,  687.,  688.,  689.,  690.,  691.,   692.,   693.,   694.,
      695.,  696.,  4242., 4248., 4254., 4260.,  0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     721.,
      722.,  723.,  724.,  725.,  726.,  727.,   728.,   729.,   730.,
      731.,  732.,  733.,  734.,  735.,  736.,   737.,   738.,   739.,
      740.,  741.,  742.,  743.,  744.,  4530.,  4536.,  4542.,  4548.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    769.,  770.,  771.,  772.,   773.,   774.,   775.,
      776.,  777.,  778.,  779.,  780.,  781.,   782.,   783.,   784.,
      785.,  786.,  787.,  788.,  789.,  790.,   791.,   792.,   4818.,
      4824., 4830., 4836., 0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    817.,   818.,   819.,   820.,
      821.,  822.,  823.,  824.,  825.,  826.,   827.,   828.,   829.,
      830.,  831.,  832.,  833.,  834.,  835.,   836.,   837.,   838.,
      839.,  840.,  5106., 5112., 5118., 5124.,  0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     5910.,
      5916., 5922., 5928., 5934., 5940., 5946.,  5952.,  5958.,  5964.,
      5970., 5976., 5982., 5988., 5994., 6000.,  6006.,  6012.,  6018.,
      6024., 6030., 6036., 6042., 6048., 36684., 36720., 36756., 36792.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     1153.,
      1154., 1155., 1156., 1157., 1158., 1159.,  1160.,  1161.,  1162.,
      1163., 1164., 1165., 1166., 1167., 1168.,  1169.,  1170.,  1171.,
      1172., 1173., 1174., 1175., 1176., 7122.,  7128.,  7134.,  7140.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    1201., 1202., 1203., 1204.,  1205.,  1206.,  1207.,
      1208., 1209., 1210., 1211., 1212., 1213.,  1214.,  1215.,  1216.,
      1217., 1218., 1219., 1220., 1221., 1222.,  1223.,  1224.,  7410.,
      7416., 7422., 7428., 0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    1249.,  1250.,  1251.,  1252.,
      1253., 1254., 1255., 1256., 1257., 1258.,  1259.,  1260.,  1261.,
      1262., 1263., 1264., 1265., 1266., 1267.,  1268.,  1269.,  1270.,
      1271., 1272., 7698., 7704., 7710., 7716.,  0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     1297.,
      1298., 1299., 1300., 1301., 1302., 1303.,  1304.,  1305.,  1306.,
      1307., 1308., 1309., 1310., 1311., 1312.,  1313.,  1314.,  1315.,
      1316., 1317., 1318., 1319., 1320., 7986.,  7992.,  7998.,  8004.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    1345., 1346., 1347., 1348.,  1349.,  1350.,  1351.,
      1352., 1353., 1354., 1355., 1356., 1357.,  1358.,  1359.,  1360.,
      1361., 1362., 1363., 1364., 1365., 1366.,  1367.,  1368.,  8274.,
      8280., 8286., 8292., 0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    1393.,  1394.,  1395.,  1396.,
      1397., 1398., 1399., 1400., 1401., 1402.,  1403.,  1404.,  1405.,
      1406., 1407., 1408., 1409., 1410., 1411.,  1412.,  1413.,  1414.,
      1415., 1416., 8562., 8568., 8574., 8580.,  0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,     0.,     9366.,
      9372., 9378., 9384., 9390., 9396., 9402.,  9408.,  9414.,  9420.,
      9426., 9432., 9438., 9444., 9450., 9456.,  9462.,  9468.,  9474.,
      9480., 9486., 9492., 9498., 9504., 57420., 57456., 57492., 57528.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x12x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 9.,  10., 11., 12., 13., 14., 15., 16.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 17., 18., 19., 20., 21., 22., 23., 24.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 25., 26., 27., 28., 29., 30., 31., 32.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 33., 34., 35., 36., 37., 38., 39., 40.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 41., 42., 43., 44., 45., 46., 47., 48.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x12x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      1.,    2.,    3.,    4.,    5.,    6.,    7.,    63.,   0.,    0.,
      0.,    0.,    0.,    14.,   15.,   16.,   17.,   18.,   19.,   20.,
      141.,  0.,    0.,    0.,    0.,    0.,    27.,   28.,   29.,   30.,
      31.,   32.,   33.,   219.,  0.,    0.,    0.,    0.,    0.,    40.,
      41.,   42.,   43.,   44.,   45.,   46.,   297.,  0.,    0.,    0.,
      0.,    0.,    53.,   54.,   55.,   56.,   57.,   58.,   59.,   375.,
      0.,    0.,    0.,    0.,    0.,    66.,   67.,   68.,   69.,   70.,
      71.,   72.,   453.,  0.,    0.,    0.,    0.,    0.,    669.,  675.,
      681.,  687.,  693.,  699.,  705.,  4356., 0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    157.,  158.,  159.,  160.,
      161.,  162.,  163.,  999.,  0.,    0.,    0.,    0.,    0.,    170.,
      171.,  172.,  173.,  174.,  175.,  176.,  1077., 0.,    0.,    0.,
      0.,    0.,    183.,  184.,  185.,  186.,  187.,  188.,  189.,  1155.,
      0.,    0.,    0.,    0.,    0.,    196.,  197.,  198.,  199.,  200.,
      201.,  202.,  1233., 0.,    0.,    0.,    0.,    0.,    209.,  210.,
      211.,  212.,  213.,  214.,  215.,  1311., 0.,    0.,    0.,    0.,
      0.,    222.,  223.,  224.,  225.,  226.,  227.,  228.,  1389., 0.,
      0.,    0.,    0.,    0.,    1605., 1611., 1617., 1623., 1629., 1635.,
      1641., 9972., 0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    313.,  314.,  315.,  316.,  317.,  318.,  319.,  1935.,
      0.,    0.,    0.,    0.,    0.,    326.,  327.,  328.,  329.,  330.,
      331.,  332.,  2013., 0.,    0.,    0.,    0.,    0.,    339.,  340.,
      341.,  342.,  343.,  344.,  345.,  2091., 0.,    0.,    0.,    0.,
      0.,    352.,  353.,  354.,  355.,  356.,  357.,  358.,  2169., 0.,
      0.,    0.,    0.,    0.,    365.,  366.,  367.,  368.,  369.,  370.,
      371.,  2247., 0.,    0.,    0.,    0.,    0.,    378.,  379.,  380.,
      381.,  382.,  383.,  384.,  2325., 0.,    0.,    0.,    0.,    0.,
      2541., 2547., 2553., 2559., 2565., 2571., 2577., 15588.};
  const std::array<int, 4> in_shape = {{3, 12, 13, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x12x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 1., 2., 3., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 4., 5., 6., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  7., 8., 9., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  10., 11., 12., 0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 0.,  0.,  0., 13., 14., 15., 0.,  0., 0., 0., 0., 0., 0., 0., 0.,
      0., 16., 17., 18.};
  const std::array<int, 4> in_shape = {{3, 12, 13, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x12x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      1.,    2.,    3.,     4.,     5.,     6.,    7.,    8.,    9.,    10.,
      11.,   12.,   13.,    14.,    120.,   126.,  0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    27.,   28.,   29.,   30.,
      31.,   32.,   33.,    34.,    35.,    36.,   37.,   38.,   39.,   40.,
      276.,  282.,  0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    53.,    54.,    55.,    56.,   57.,   58.,   59.,   60.,
      61.,   62.,   63.,    64.,    65.,    66.,   432.,  438.,  0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    79.,   80.,
      81.,   82.,   83.,    84.,    85.,    86.,   87.,   88.,   89.,   90.,
      91.,   92.,   588.,   594.,   0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     105.,   106.,  107.,  108.,  109.,  110.,
      111.,  112.,  113.,   114.,   115.,   116.,  117.,  118.,  744.,  750.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      131.,  132.,  133.,   134.,   135.,   136.,  137.,  138.,  139.,  140.,
      141.,  142.,  143.,   144.,   900.,   906.,  0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    1332., 1338., 1344., 1350.,
      1356., 1362., 1368.,  1374.,  1380.,  1386., 1392., 1398., 1404., 1410.,
      8676., 8712., 0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    313.,   314.,   315.,   316.,  317.,  318.,  319.,  320.,
      321.,  322.,  323.,   324.,   325.,   326.,  1992., 1998., 0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    339.,  340.,
      341.,  342.,  343.,   344.,   345.,   346.,  347.,  348.,  349.,  350.,
      351.,  352.,  2148.,  2154.,  0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     365.,   366.,  367.,  368.,  369.,  370.,
      371.,  372.,  373.,   374.,   375.,   376.,  377.,  378.,  2304., 2310.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      391.,  392.,  393.,   394.,   395.,   396.,  397.,  398.,  399.,  400.,
      401.,  402.,  403.,   404.,   2460.,  2466., 0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    417.,  418.,  419.,  420.,
      421.,  422.,  423.,   424.,   425.,   426.,  427.,  428.,  429.,  430.,
      2616., 2622., 0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    443.,   444.,   445.,   446.,  447.,  448.,  449.,  450.,
      451.,  452.,  453.,   454.,   455.,   456.,  2772., 2778., 0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    3204., 3210.,
      3216., 3222., 3228.,  3234.,  3240.,  3246., 3252., 3258., 3264., 3270.,
      3276., 3282., 19908., 19944., 0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     625.,   626.,  627.,  628.,  629.,  630.,
      631.,  632.,  633.,   634.,   635.,   636.,  637.,  638.,  3864., 3870.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      651.,  652.,  653.,   654.,   655.,   656.,  657.,  658.,  659.,  660.,
      661.,  662.,  663.,   664.,   4020.,  4026., 0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    677.,  678.,  679.,  680.,
      681.,  682.,  683.,   684.,   685.,   686.,  687.,  688.,  689.,  690.,
      4176., 4182., 0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    703.,   704.,   705.,   706.,  707.,  708.,  709.,  710.,
      711.,  712.,  713.,   714.,   715.,   716.,  4332., 4338., 0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    729.,  730.,
      731.,  732.,  733.,   734.,   735.,   736.,  737.,  738.,  739.,  740.,
      741.,  742.,  4488.,  4494.,  0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     755.,   756.,  757.,  758.,  759.,  760.,
      761.,  762.,  763.,   764.,   765.,   766.,  767.,  768.,  4644., 4650.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      5076., 5082., 5088.,  5094.,  5100.,  5106., 5112., 5118., 5124., 5130.,
      5136., 5142., 5148.,  5154.,  31140., 31176.};
  const std::array<int, 4> in_shape = {{3, 12, 13, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x12x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.,  2.,  3.,  4., 5.,
      6.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  7.,  8.,  9.,  10., 11., 12., 0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  13., 14., 15., 16., 17., 18., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  19., 20., 21., 22., 23., 24., 0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  25., 26., 27., 28., 29., 30., 0.,  0.,  0.,  0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0.,
      31., 32., 33., 34., 35., 36.};
  const std::array<int, 4> in_shape = {{3, 12, 13, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x12x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     1.,     2.,     3.,     4.,     5.,     6.,     7.,     8.,
      9.,     10.,    11.,    12.,    13.,    14.,    15.,    16.,    17.,
      18.,    19.,    20.,    21.,    22.,    23.,    24.,    25.,    26.,
      27.,    28.,    234.,   240.,   246.,   252.,   0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     53.,
      54.,    55.,    56.,    57.,    58.,    59.,    60.,    61.,    62.,
      63.,    64.,    65.,    66.,    67.,    68.,    69.,    70.,    71.,
      72.,    73.,    74.,    75.,    76.,    77.,    78.,    79.,    80.,
      546.,   552.,   558.,   564.,   0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     105.,   106.,   107.,
      108.,   109.,   110.,   111.,   112.,   113.,   114.,   115.,   116.,
      117.,   118.,   119.,   120.,   121.,   122.,   123.,   124.,   125.,
      126.,   127.,   128.,   129.,   130.,   131.,   132.,   858.,   864.,
      870.,   876.,   0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     157.,   158.,   159.,   160.,   161.,
      162.,   163.,   164.,   165.,   166.,   167.,   168.,   169.,   170.,
      171.,   172.,   173.,   174.,   175.,   176.,   177.,   178.,   179.,
      180.,   181.,   182.,   183.,   184.,   1170.,  1176.,  1182.,  1188.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     209.,   210.,   211.,   212.,   213.,   214.,   215.,
      216.,   217.,   218.,   219.,   220.,   221.,   222.,   223.,   224.,
      225.,   226.,   227.,   228.,   229.,   230.,   231.,   232.,   233.,
      234.,   235.,   236.,   1482.,  1488.,  1494.,  1500.,  0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      261.,   262.,   263.,   264.,   265.,   266.,   267.,   268.,   269.,
      270.,   271.,   272.,   273.,   274.,   275.,   276.,   277.,   278.,
      279.,   280.,   281.,   282.,   283.,   284.,   285.,   286.,   287.,
      288.,   1794.,  1800.,  1806.,  1812.,  0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     2658.,  2664.,
      2670.,  2676.,  2682.,  2688.,  2694.,  2700.,  2706.,  2712.,  2718.,
      2724.,  2730.,  2736.,  2742.,  2748.,  2754.,  2760.,  2766.,  2772.,
      2778.,  2784.,  2790.,  2796.,  2802.,  2808.,  2814.,  2820.,  17316.,
      17352., 17388., 17424., 0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     625.,   626.,   627.,   628.,   629.,
      630.,   631.,   632.,   633.,   634.,   635.,   636.,   637.,   638.,
      639.,   640.,   641.,   642.,   643.,   644.,   645.,   646.,   647.,
      648.,   649.,   650.,   651.,   652.,   3978.,  3984.,  3990.,  3996.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     677.,   678.,   679.,   680.,   681.,   682.,   683.,
      684.,   685.,   686.,   687.,   688.,   689.,   690.,   691.,   692.,
      693.,   694.,   695.,   696.,   697.,   698.,   699.,   700.,   701.,
      702.,   703.,   704.,   4290.,  4296.,  4302.,  4308.,  0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      729.,   730.,   731.,   732.,   733.,   734.,   735.,   736.,   737.,
      738.,   739.,   740.,   741.,   742.,   743.,   744.,   745.,   746.,
      747.,   748.,   749.,   750.,   751.,   752.,   753.,   754.,   755.,
      756.,   4602.,  4608.,  4614.,  4620.,  0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     781.,   782.,
      783.,   784.,   785.,   786.,   787.,   788.,   789.,   790.,   791.,
      792.,   793.,   794.,   795.,   796.,   797.,   798.,   799.,   800.,
      801.,   802.,   803.,   804.,   805.,   806.,   807.,   808.,   4914.,
      4920.,  4926.,  4932.,  0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     833.,   834.,   835.,   836.,
      837.,   838.,   839.,   840.,   841.,   842.,   843.,   844.,   845.,
      846.,   847.,   848.,   849.,   850.,   851.,   852.,   853.,   854.,
      855.,   856.,   857.,   858.,   859.,   860.,   5226.,  5232.,  5238.,
      5244.,  0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     885.,   886.,   887.,   888.,   889.,   890.,
      891.,   892.,   893.,   894.,   895.,   896.,   897.,   898.,   899.,
      900.,   901.,   902.,   903.,   904.,   905.,   906.,   907.,   908.,
      909.,   910.,   911.,   912.,   5538.,  5544.,  5550.,  5556.,  0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     6402.,  6408.,  6414.,  6420.,  6426.,  6432.,  6438.,  6444.,
      6450.,  6456.,  6462.,  6468.,  6474.,  6480.,  6486.,  6492.,  6498.,
      6504.,  6510.,  6516.,  6522.,  6528.,  6534.,  6540.,  6546.,  6552.,
      6558.,  6564.,  39780., 39816., 39852., 39888., 0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     1249.,  1250.,
      1251.,  1252.,  1253.,  1254.,  1255.,  1256.,  1257.,  1258.,  1259.,
      1260.,  1261.,  1262.,  1263.,  1264.,  1265.,  1266.,  1267.,  1268.,
      1269.,  1270.,  1271.,  1272.,  1273.,  1274.,  1275.,  1276.,  7722.,
      7728.,  7734.,  7740.,  0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     1301.,  1302.,  1303.,  1304.,
      1305.,  1306.,  1307.,  1308.,  1309.,  1310.,  1311.,  1312.,  1313.,
      1314.,  1315.,  1316.,  1317.,  1318.,  1319.,  1320.,  1321.,  1322.,
      1323.,  1324.,  1325.,  1326.,  1327.,  1328.,  8034.,  8040.,  8046.,
      8052.,  0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     1353.,  1354.,  1355.,  1356.,  1357.,  1358.,
      1359.,  1360.,  1361.,  1362.,  1363.,  1364.,  1365.,  1366.,  1367.,
      1368.,  1369.,  1370.,  1371.,  1372.,  1373.,  1374.,  1375.,  1376.,
      1377.,  1378.,  1379.,  1380.,  8346.,  8352.,  8358.,  8364.,  0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     1405.,  1406.,  1407.,  1408.,  1409.,  1410.,  1411.,  1412.,
      1413.,  1414.,  1415.,  1416.,  1417.,  1418.,  1419.,  1420.,  1421.,
      1422.,  1423.,  1424.,  1425.,  1426.,  1427.,  1428.,  1429.,  1430.,
      1431.,  1432.,  8658.,  8664.,  8670.,  8676.,  0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     1457.,
      1458.,  1459.,  1460.,  1461.,  1462.,  1463.,  1464.,  1465.,  1466.,
      1467.,  1468.,  1469.,  1470.,  1471.,  1472.,  1473.,  1474.,  1475.,
      1476.,  1477.,  1478.,  1479.,  1480.,  1481.,  1482.,  1483.,  1484.,
      8970.,  8976.,  8982.,  8988.,  0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     1509.,  1510.,  1511.,
      1512.,  1513.,  1514.,  1515.,  1516.,  1517.,  1518.,  1519.,  1520.,
      1521.,  1522.,  1523.,  1524.,  1525.,  1526.,  1527.,  1528.,  1529.,
      1530.,  1531.,  1532.,  1533.,  1534.,  1535.,  1536.,  9282.,  9288.,
      9294.,  9300.,  0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     10146., 10152., 10158., 10164., 10170.,
      10176., 10182., 10188., 10194., 10200., 10206., 10212., 10218., 10224.,
      10230., 10236., 10242., 10248., 10254., 10260., 10266., 10272., 10278.,
      10284., 10290., 10296., 10302., 10308., 62244., 62280., 62316., 62352.};
  const std::array<int, 4> in_shape = {{3, 12, 13, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x12x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9.,  10.,
      11., 12., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  13., 14., 15.,
      16., 17., 18., 19., 20., 21., 22., 23., 24., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  25.,
      26., 27., 28., 29., 30., 31., 32., 33., 34., 35., 36., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  37., 38., 39., 40., 41., 42., 43., 44., 45.,
      46., 47., 48., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  49., 50., 51., 52., 53., 54., 55.,
      56., 57., 58., 59., 60., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      61., 62., 63., 64., 65., 66., 67., 68., 69., 70., 71., 72.};
  const std::array<int, 4> in_shape = {{3, 12, 13, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x12x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    1.,     2.,    3.,    4.,    5.,
      6.,    7.,    8.,    69.,   0.,    0.,     0.,    0.,    0.,    15.,
      16.,   17.,   18.,   19.,   20.,   21.,    22.,   153.,  0.,    0.,
      0.,    0.,    0.,    29.,   30.,   31.,    32.,   33.,   34.,   35.,
      36.,   237.,  0.,    0.,    0.,    0.,     0.,    43.,   44.,   45.,
      46.,   47.,   48.,   49.,   50.,   321.,   0.,    0.,    0.,    0.,
      0.,    57.,   58.,   59.,   60.,   61.,    62.,   63.,   64.,   405.,
      0.,    0.,    0.,    0.,    0.,    71.,    72.,   73.,   74.,   75.,
      76.,   77.,   78.,   489.,  0.,    0.,     0.,    0.,    0.,    720.,
      726.,  732.,  738.,  744.,  750.,  756.,   762.,  4698., 0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,    169.,  170.,  171.,   172.,  173.,  174.,  175.,
      176.,  1077., 0.,    0.,    0.,    0.,     0.,    183.,  184.,  185.,
      186.,  187.,  188.,  189.,  190.,  1161.,  0.,    0.,    0.,    0.,
      0.,    197.,  198.,  199.,  200.,  201.,   202.,  203.,  204.,  1245.,
      0.,    0.,    0.,    0.,    0.,    211.,   212.,  213.,  214.,  215.,
      216.,  217.,  218.,  1329., 0.,    0.,     0.,    0.,    0.,    225.,
      226.,  227.,  228.,  229.,  230.,  231.,   232.,  1413., 0.,    0.,
      0.,    0.,    0.,    239.,  240.,  241.,   242.,  243.,  244.,  245.,
      246.,  1497., 0.,    0.,    0.,    0.,     0.,    1728., 1734., 1740.,
      1746., 1752., 1758., 1764., 1770., 10746., 0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,
      0.,    337.,  338.,  339.,  340.,  341.,   342.,  343.,  344.,  2085.,
      0.,    0.,    0.,    0.,    0.,    351.,   352.,  353.,  354.,  355.,
      356.,  357.,  358.,  2169., 0.,    0.,     0.,    0.,    0.,    365.,
      366.,  367.,  368.,  369.,  370.,  371.,   372.,  2253., 0.,    0.,
      0.,    0.,    0.,    379.,  380.,  381.,   382.,  383.,  384.,  385.,
      386.,  2337., 0.,    0.,    0.,    0.,     0.,    393.,  394.,  395.,
      396.,  397.,  398.,  399.,  400.,  2421.,  0.,    0.,    0.,    0.,
      0.,    407.,  408.,  409.,  410.,  411.,   412.,  413.,  414.,  2505.,
      0.,    0.,    0.,    0.,    0.,    2736.,  2742., 2748., 2754., 2760.,
      2766., 2772., 2778., 16794.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x12x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      1., 2., 3.,  4.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 5.,
      6., 7., 8.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  9.,  10., 11., 12., 0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 13., 14., 15., 16., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  0.,  17., 18., 19., 20., 0., 0., 0., 0., 0.,
      0., 0., 0.,  0.,  0.,  21., 22., 23., 24.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x12x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      1.,     2.,     3.,    4.,    5.,    6.,    7.,     8.,    9.,    10.,
      11.,    12.,    13.,   14.,   15.,   16.,   132.,   138.,  0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    29.,   30.,
      31.,    32.,    33.,   34.,   35.,   36.,   37.,    38.,   39.,   40.,
      41.,    42.,    43.,   44.,   300.,  306.,  0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    57.,    58.,   59.,   60.,
      61.,    62.,    63.,   64.,   65.,   66.,   67.,    68.,   69.,   70.,
      71.,    72.,    468.,  474.,  0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    85.,   86.,   87.,    88.,   89.,   90.,
      91.,    92.,    93.,   94.,   95.,   96.,   97.,    98.,   99.,   100.,
      636.,   642.,   0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     113.,  114.,  115.,  116.,  117.,   118.,  119.,  120.,
      121.,   122.,   123.,  124.,  125.,  126.,  127.,   128.,  804.,  810.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      141.,   142.,   143.,  144.,  145.,  146.,  147.,   148.,  149.,  150.,
      151.,   152.,   153.,  154.,  155.,  156.,  972.,   978.,  0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    1434., 1440.,
      1446.,  1452.,  1458., 1464., 1470., 1476., 1482.,  1488., 1494., 1500.,
      1506.,  1512.,  1518., 1524., 9360., 9396., 0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    337.,   338.,  339.,  340.,
      341.,   342.,   343.,  344.,  345.,  346.,  347.,   348.,  349.,  350.,
      351.,   352.,   2148., 2154., 0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    365.,  366.,  367.,   368.,  369.,  370.,
      371.,   372.,   373.,  374.,  375.,  376.,  377.,   378.,  379.,  380.,
      2316.,  2322.,  0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     393.,  394.,  395.,  396.,  397.,   398.,  399.,  400.,
      401.,   402.,   403.,  404.,  405.,  406.,  407.,   408.,  2484., 2490.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      421.,   422.,   423.,  424.,  425.,  426.,  427.,   428.,  429.,  430.,
      431.,   432.,   433.,  434.,  435.,  436.,  2652.,  2658., 0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    449.,  450.,
      451.,   452.,   453.,  454.,  455.,  456.,  457.,   458.,  459.,  460.,
      461.,   462.,   463.,  464.,  2820., 2826., 0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    477.,   478.,  479.,  480.,
      481.,   482.,   483.,  484.,  485.,  486.,  487.,   488.,  489.,  490.,
      491.,   492.,   2988., 2994., 0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    3450., 3456., 3462.,  3468., 3474., 3480.,
      3486.,  3492.,  3498., 3504., 3510., 3516., 3522.,  3528., 3534., 3540.,
      21456., 21492., 0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     673.,  674.,  675.,  676.,  677.,   678.,  679.,  680.,
      681.,   682.,   683.,  684.,  685.,  686.,  687.,   688.,  4164., 4170.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      701.,   702.,   703.,  704.,  705.,  706.,  707.,   708.,  709.,  710.,
      711.,   712.,   713.,  714.,  715.,  716.,  4332.,  4338., 0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    729.,  730.,
      731.,   732.,   733.,  734.,  735.,  736.,  737.,   738.,  739.,  740.,
      741.,   742.,   743.,  744.,  4500., 4506., 0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    757.,   758.,  759.,  760.,
      761.,   762.,   763.,  764.,  765.,  766.,  767.,   768.,  769.,  770.,
      771.,   772.,   4668., 4674., 0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    785.,  786.,  787.,   788.,  789.,  790.,
      791.,   792.,   793.,  794.,  795.,  796.,  797.,   798.,  799.,  800.,
      4836.,  4842.,  0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     813.,  814.,  815.,  816.,  817.,   818.,  819.,  820.,
      821.,   822.,   823.,  824.,  825.,  826.,  827.,   828.,  5004., 5010.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      5466.,  5472.,  5478., 5484., 5490., 5496., 5502.,  5508., 5514., 5520.,
      5526.,  5532.,  5538., 5544., 5550., 5556., 33552., 33588.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x12x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  9.,  10.,
      11., 12., 13., 14., 15., 16., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  17., 18., 19., 20., 21., 22., 23., 24., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  25., 26., 27., 28., 29., 30., 31., 32., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  33., 34., 35.,
      36., 37., 38., 39., 40., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  41., 42., 43., 44., 45.,
      46., 47., 48.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x12x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     1.,     2.,     3.,     4.,     5.,     6.,
      7.,     8.,     9.,     10.,    11.,    12.,    13.,    14.,    15.,
      16.,    17.,    18.,    19.,    20.,    21.,    22.,    23.,    24.,
      25.,    26.,    27.,    28.,    29.,    30.,    31.,    32.,    258.,
      264.,   270.,   276.,   0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     57.,    58.,    59.,    60.,
      61.,    62.,    63.,    64.,    65.,    66.,    67.,    68.,    69.,
      70.,    71.,    72.,    73.,    74.,    75.,    76.,    77.,    78.,
      79.,    80.,    81.,    82.,    83.,    84.,    85.,    86.,    87.,
      88.,    594.,   600.,   606.,   612.,   0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     113.,   114.,
      115.,   116.,   117.,   118.,   119.,   120.,   121.,   122.,   123.,
      124.,   125.,   126.,   127.,   128.,   129.,   130.,   131.,   132.,
      133.,   134.,   135.,   136.,   137.,   138.,   139.,   140.,   141.,
      142.,   143.,   144.,   930.,   936.,   942.,   948.,   0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      169.,   170.,   171.,   172.,   173.,   174.,   175.,   176.,   177.,
      178.,   179.,   180.,   181.,   182.,   183.,   184.,   185.,   186.,
      187.,   188.,   189.,   190.,   191.,   192.,   193.,   194.,   195.,
      196.,   197.,   198.,   199.,   200.,   1266.,  1272.,  1278.,  1284.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     225.,   226.,   227.,   228.,   229.,   230.,   231.,
      232.,   233.,   234.,   235.,   236.,   237.,   238.,   239.,   240.,
      241.,   242.,   243.,   244.,   245.,   246.,   247.,   248.,   249.,
      250.,   251.,   252.,   253.,   254.,   255.,   256.,   1602.,  1608.,
      1614.,  1620.,  0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     281.,   282.,   283.,   284.,   285.,
      286.,   287.,   288.,   289.,   290.,   291.,   292.,   293.,   294.,
      295.,   296.,   297.,   298.,   299.,   300.,   301.,   302.,   303.,
      304.,   305.,   306.,   307.,   308.,   309.,   310.,   311.,   312.,
      1938.,  1944.,  1950.,  1956.,  0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     2862.,  2868.,  2874.,
      2880.,  2886.,  2892.,  2898.,  2904.,  2910.,  2916.,  2922.,  2928.,
      2934.,  2940.,  2946.,  2952.,  2958.,  2964.,  2970.,  2976.,  2982.,
      2988.,  2994.,  3000.,  3006.,  3012.,  3018.,  3024.,  3030.,  3036.,
      3042.,  3048.,  18684., 18720., 18756., 18792., 0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      673.,   674.,   675.,   676.,   677.,   678.,   679.,   680.,   681.,
      682.,   683.,   684.,   685.,   686.,   687.,   688.,   689.,   690.,
      691.,   692.,   693.,   694.,   695.,   696.,   697.,   698.,   699.,
      700.,   701.,   702.,   703.,   704.,   4290.,  4296.,  4302.,  4308.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     729.,   730.,   731.,   732.,   733.,   734.,   735.,
      736.,   737.,   738.,   739.,   740.,   741.,   742.,   743.,   744.,
      745.,   746.,   747.,   748.,   749.,   750.,   751.,   752.,   753.,
      754.,   755.,   756.,   757.,   758.,   759.,   760.,   4626.,  4632.,
      4638.,  4644.,  0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     785.,   786.,   787.,   788.,   789.,
      790.,   791.,   792.,   793.,   794.,   795.,   796.,   797.,   798.,
      799.,   800.,   801.,   802.,   803.,   804.,   805.,   806.,   807.,
      808.,   809.,   810.,   811.,   812.,   813.,   814.,   815.,   816.,
      4962.,  4968.,  4974.,  4980.,  0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     841.,   842.,   843.,
      844.,   845.,   846.,   847.,   848.,   849.,   850.,   851.,   852.,
      853.,   854.,   855.,   856.,   857.,   858.,   859.,   860.,   861.,
      862.,   863.,   864.,   865.,   866.,   867.,   868.,   869.,   870.,
      871.,   872.,   5298.,  5304.,  5310.,  5316.,  0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     897.,
      898.,   899.,   900.,   901.,   902.,   903.,   904.,   905.,   906.,
      907.,   908.,   909.,   910.,   911.,   912.,   913.,   914.,   915.,
      916.,   917.,   918.,   919.,   920.,   921.,   922.,   923.,   924.,
      925.,   926.,   927.,   928.,   5634.,  5640.,  5646.,  5652.,  0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     953.,   954.,   955.,   956.,   957.,   958.,   959.,   960.,
      961.,   962.,   963.,   964.,   965.,   966.,   967.,   968.,   969.,
      970.,   971.,   972.,   973.,   974.,   975.,   976.,   977.,   978.,
      979.,   980.,   981.,   982.,   983.,   984.,   5970.,  5976.,  5982.,
      5988.,  0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     6894.,  6900.,  6906.,  6912.,  6918.,  6924.,
      6930.,  6936.,  6942.,  6948.,  6954.,  6960.,  6966.,  6972.,  6978.,
      6984.,  6990.,  6996.,  7002.,  7008.,  7014.,  7020.,  7026.,  7032.,
      7038.,  7044.,  7050.,  7056.,  7062.,  7068.,  7074.,  7080.,  42876.,
      42912., 42948., 42984., 0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     1345.,  1346.,  1347.,
      1348.,  1349.,  1350.,  1351.,  1352.,  1353.,  1354.,  1355.,  1356.,
      1357.,  1358.,  1359.,  1360.,  1361.,  1362.,  1363.,  1364.,  1365.,
      1366.,  1367.,  1368.,  1369.,  1370.,  1371.,  1372.,  1373.,  1374.,
      1375.,  1376.,  8322.,  8328.,  8334.,  8340.,  0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     1401.,
      1402.,  1403.,  1404.,  1405.,  1406.,  1407.,  1408.,  1409.,  1410.,
      1411.,  1412.,  1413.,  1414.,  1415.,  1416.,  1417.,  1418.,  1419.,
      1420.,  1421.,  1422.,  1423.,  1424.,  1425.,  1426.,  1427.,  1428.,
      1429.,  1430.,  1431.,  1432.,  8658.,  8664.,  8670.,  8676.,  0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     1457.,  1458.,  1459.,  1460.,  1461.,  1462.,  1463.,  1464.,
      1465.,  1466.,  1467.,  1468.,  1469.,  1470.,  1471.,  1472.,  1473.,
      1474.,  1475.,  1476.,  1477.,  1478.,  1479.,  1480.,  1481.,  1482.,
      1483.,  1484.,  1485.,  1486.,  1487.,  1488.,  8994.,  9000.,  9006.,
      9012.,  0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     1513.,  1514.,  1515.,  1516.,  1517.,  1518.,
      1519.,  1520.,  1521.,  1522.,  1523.,  1524.,  1525.,  1526.,  1527.,
      1528.,  1529.,  1530.,  1531.,  1532.,  1533.,  1534.,  1535.,  1536.,
      1537.,  1538.,  1539.,  1540.,  1541.,  1542.,  1543.,  1544.,  9330.,
      9336.,  9342.,  9348.,  0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     1569.,  1570.,  1571.,  1572.,
      1573.,  1574.,  1575.,  1576.,  1577.,  1578.,  1579.,  1580.,  1581.,
      1582.,  1583.,  1584.,  1585.,  1586.,  1587.,  1588.,  1589.,  1590.,
      1591.,  1592.,  1593.,  1594.,  1595.,  1596.,  1597.,  1598.,  1599.,
      1600.,  9666.,  9672.,  9678.,  9684.,  0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     1625.,  1626.,
      1627.,  1628.,  1629.,  1630.,  1631.,  1632.,  1633.,  1634.,  1635.,
      1636.,  1637.,  1638.,  1639.,  1640.,  1641.,  1642.,  1643.,  1644.,
      1645.,  1646.,  1647.,  1648.,  1649.,  1650.,  1651.,  1652.,  1653.,
      1654.,  1655.,  1656.,  10002., 10008., 10014., 10020., 0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      10926., 10932., 10938., 10944., 10950., 10956., 10962., 10968., 10974.,
      10980., 10986., 10992., 10998., 11004., 11010., 11016., 11022., 11028.,
      11034., 11040., 11046., 11052., 11058., 11064., 11070., 11076., 11082.,
      11088., 11094., 11100., 11106., 11112., 67068., 67104., 67140., 67176.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x12x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9.,  10., 11., 12., 13., 14., 15.,
      16., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  17., 18., 19., 20.,
      21., 22., 23., 24., 25., 26., 27., 28., 29., 30., 31., 32., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  33., 34., 35.,
      36., 37., 38., 39., 40., 41., 42., 43., 44., 45., 46., 47., 48., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  49., 50., 51., 52., 53., 54., 55.,
      56., 57., 58., 59., 60., 61., 62., 63., 64., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  65., 66., 67., 68., 69., 70.,
      71., 72., 73., 74., 75., 76., 77., 78., 79., 80., 0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  81., 82., 83., 84., 85., 86., 87., 88., 89., 90.,
      91., 92., 93., 94., 95., 96.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x13x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 1.,    2.,    3.,    4.,    5.,    6.,    57.,
      0., 0., 0., 0., 0., 13.,   14.,   15.,   16.,   17.,   18.,   129.,
      0., 0., 0., 0., 0., 25.,   26.,   27.,   28.,   29.,   30.,   201.,
      0., 0., 0., 0., 0., 37.,   38.,   39.,   40.,   41.,   42.,   273.,
      0., 0., 0., 0., 0., 49.,   50.,   51.,   52.,   53.,   54.,   345.,
      0., 0., 0., 0., 0., 61.,   62.,   63.,   64.,   65.,   66.,   417.,
      0., 0., 0., 0., 0., 73.,   74.,   75.,   76.,   77.,   78.,   489.,
      0., 0., 0., 0., 0., 690.,  696.,  702.,  708.,  714.,  720.,  4446.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 157.,  158.,  159.,  160.,  161.,  162.,  993.,
      0., 0., 0., 0., 0., 169.,  170.,  171.,  172.,  173.,  174.,  1065.,
      0., 0., 0., 0., 0., 181.,  182.,  183.,  184.,  185.,  186.,  1137.,
      0., 0., 0., 0., 0., 193.,  194.,  195.,  196.,  197.,  198.,  1209.,
      0., 0., 0., 0., 0., 205.,  206.,  207.,  208.,  209.,  210.,  1281.,
      0., 0., 0., 0., 0., 217.,  218.,  219.,  220.,  221.,  222.,  1353.,
      0., 0., 0., 0., 0., 229.,  230.,  231.,  232.,  233.,  234.,  1425.,
      0., 0., 0., 0., 0., 1626., 1632., 1638., 1644., 1650., 1656., 10062.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 313.,  314.,  315.,  316.,  317.,  318.,  1929.,
      0., 0., 0., 0., 0., 325.,  326.,  327.,  328.,  329.,  330.,  2001.,
      0., 0., 0., 0., 0., 337.,  338.,  339.,  340.,  341.,  342.,  2073.,
      0., 0., 0., 0., 0., 349.,  350.,  351.,  352.,  353.,  354.,  2145.,
      0., 0., 0., 0., 0., 361.,  362.,  363.,  364.,  365.,  366.,  2217.,
      0., 0., 0., 0., 0., 373.,  374.,  375.,  376.,  377.,  378.,  2289.,
      0., 0., 0., 0., 0., 385.,  386.,  387.,  388.,  389.,  390.,  2361.,
      0., 0., 0., 0., 0., 2562., 2568., 2574., 2580., 2586., 2592., 15678.};
  const std::array<int, 4> in_shape = {{3, 13, 12, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x13x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 1.,  2., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 3., 4.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 5.,  6.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 7., 8.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 9.,  10., 0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 11., 12., 0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 0.,  0.,  0., 0., 13., 14., 0., 0., 0., 0.,
      0., 0., 0.,  0., 0., 0., 15., 16., 0., 0., 0.,  0.,  0., 0., 0., 0.,
      0., 0., 17., 18.};
  const std::array<int, 4> in_shape = {{3, 13, 12, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x13x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      1.,    2.,    3.,     4.,     5.,     6.,    7.,    8.,    9.,    10.,
      11.,   12.,   108.,   114.,   0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     25.,    26.,   27.,   28.,   29.,   30.,
      31.,   32.,   33.,    34.,    35.,    36.,   252.,  258.,  0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    49.,   50.,
      51.,   52.,   53.,    54.,    55.,    56.,   57.,   58.,   59.,   60.,
      396.,  402.,  0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    73.,    74.,    75.,    76.,   77.,   78.,   79.,   80.,
      81.,   82.,   83.,    84.,    540.,   546.,  0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    97.,   98.,   99.,   100.,
      101.,  102.,  103.,   104.,   105.,   106.,  107.,  108.,  684.,  690.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      121.,  122.,  123.,   124.,   125.,   126.,  127.,  128.,  129.,  130.,
      131.,  132.,  828.,   834.,   0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     145.,   146.,  147.,  148.,  149.,  150.,
      151.,  152.,  153.,   154.,   155.,   156.,  972.,  978.,  0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    1374., 1380.,
      1386., 1392., 1398.,  1404.,  1410.,  1416., 1422., 1428., 1434., 1440.,
      8856., 8892., 0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    313.,   314.,   315.,   316.,  317.,  318.,  319.,  320.,
      321.,  322.,  323.,   324.,   1980.,  1986., 0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    337.,  338.,  339.,  340.,
      341.,  342.,  343.,   344.,   345.,   346.,  347.,  348.,  2124., 2130.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      361.,  362.,  363.,   364.,   365.,   366.,  367.,  368.,  369.,  370.,
      371.,  372.,  2268.,  2274.,  0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     385.,   386.,  387.,  388.,  389.,  390.,
      391.,  392.,  393.,   394.,   395.,   396.,  2412., 2418., 0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    409.,  410.,
      411.,  412.,  413.,   414.,   415.,   416.,  417.,  418.,  419.,  420.,
      2556., 2562., 0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    433.,   434.,   435.,   436.,  437.,  438.,  439.,  440.,
      441.,  442.,  443.,   444.,   2700.,  2706., 0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    457.,  458.,  459.,  460.,
      461.,  462.,  463.,   464.,   465.,   466.,  467.,  468.,  2844., 2850.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      3246., 3252., 3258.,  3264.,  3270.,  3276., 3282., 3288., 3294., 3300.,
      3306., 3312., 20088., 20124., 0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     625.,   626.,  627.,  628.,  629.,  630.,
      631.,  632.,  633.,   634.,   635.,   636.,  3852., 3858., 0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    649.,  650.,
      651.,  652.,  653.,   654.,   655.,   656.,  657.,  658.,  659.,  660.,
      3996., 4002., 0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    673.,   674.,   675.,   676.,  677.,  678.,  679.,  680.,
      681.,  682.,  683.,   684.,   4140.,  4146., 0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    697.,  698.,  699.,  700.,
      701.,  702.,  703.,   704.,   705.,   706.,  707.,  708.,  4284., 4290.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      721.,  722.,  723.,   724.,   725.,   726.,  727.,  728.,  729.,  730.,
      731.,  732.,  4428.,  4434.,  0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,     745.,   746.,  747.,  748.,  749.,  750.,
      751.,  752.,  753.,   754.,   755.,   756.,  4572., 4578., 0.,    0.,
      0.,    0.,    0.,     0.,     0.,     0.,    0.,    0.,    769.,  770.,
      771.,  772.,  773.,   774.,   775.,   776.,  777.,  778.,  779.,  780.,
      4716., 4722., 0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,    0.,    5118.,  5124.,  5130.,  5136., 5142., 5148., 5154., 5160.,
      5166., 5172., 5178.,  5184.,  31320., 31356.};
  const std::array<int, 4> in_shape = {{3, 13, 12, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x13x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 1.,  2.,  3.,  4.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 5.,  6.,  7.,  8.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 9.,  10., 11., 12., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 13., 14., 15., 16.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 17., 18., 19., 20., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 21., 22., 23., 24.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 25., 26., 27., 28., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 29., 30., 31., 32.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 33., 34., 35., 36.};
  const std::array<int, 4> in_shape = {{3, 13, 12, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x13x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     1.,
      2.,     3.,     4.,     5.,     6.,     7.,     8.,     9.,     10.,
      11.,    12.,    13.,    14.,    15.,    16.,    17.,    18.,    19.,
      20.,    21.,    22.,    23.,    24.,    210.,   216.,   222.,   228.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     49.,    50.,    51.,    52.,    53.,    54.,    55.,
      56.,    57.,    58.,    59.,    60.,    61.,    62.,    63.,    64.,
      65.,    66.,    67.,    68.,    69.,    70.,    71.,    72.,    498.,
      504.,   510.,   516.,   0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     97.,    98.,    99.,    100.,
      101.,   102.,   103.,   104.,   105.,   106.,   107.,   108.,   109.,
      110.,   111.,   112.,   113.,   114.,   115.,   116.,   117.,   118.,
      119.,   120.,   786.,   792.,   798.,   804.,   0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     145.,
      146.,   147.,   148.,   149.,   150.,   151.,   152.,   153.,   154.,
      155.,   156.,   157.,   158.,   159.,   160.,   161.,   162.,   163.,
      164.,   165.,   166.,   167.,   168.,   1074.,  1080.,  1086.,  1092.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     193.,   194.,   195.,   196.,   197.,   198.,   199.,
      200.,   201.,   202.,   203.,   204.,   205.,   206.,   207.,   208.,
      209.,   210.,   211.,   212.,   213.,   214.,   215.,   216.,   1362.,
      1368.,  1374.,  1380.,  0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     241.,   242.,   243.,   244.,
      245.,   246.,   247.,   248.,   249.,   250.,   251.,   252.,   253.,
      254.,   255.,   256.,   257.,   258.,   259.,   260.,   261.,   262.,
      263.,   264.,   1650.,  1656.,  1662.,  1668.,  0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     289.,
      290.,   291.,   292.,   293.,   294.,   295.,   296.,   297.,   298.,
      299.,   300.,   301.,   302.,   303.,   304.,   305.,   306.,   307.,
      308.,   309.,   310.,   311.,   312.,   1938.,  1944.,  1950.,  1956.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     2742.,  2748.,  2754.,  2760.,  2766.,  2772.,  2778.,
      2784.,  2790.,  2796.,  2802.,  2808.,  2814.,  2820.,  2826.,  2832.,
      2838.,  2844.,  2850.,  2856.,  2862.,  2868.,  2874.,  2880.,  17676.,
      17712., 17748., 17784., 0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     625.,   626.,   627.,   628.,   629.,   630.,   631.,
      632.,   633.,   634.,   635.,   636.,   637.,   638.,   639.,   640.,
      641.,   642.,   643.,   644.,   645.,   646.,   647.,   648.,   3954.,
      3960.,  3966.,  3972.,  0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     673.,   674.,   675.,   676.,
      677.,   678.,   679.,   680.,   681.,   682.,   683.,   684.,   685.,
      686.,   687.,   688.,   689.,   690.,   691.,   692.,   693.,   694.,
      695.,   696.,   4242.,  4248.,  4254.,  4260.,  0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     721.,
      722.,   723.,   724.,   725.,   726.,   727.,   728.,   729.,   730.,
      731.,   732.,   733.,   734.,   735.,   736.,   737.,   738.,   739.,
      740.,   741.,   742.,   743.,   744.,   4530.,  4536.,  4542.,  4548.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     769.,   770.,   771.,   772.,   773.,   774.,   775.,
      776.,   777.,   778.,   779.,   780.,   781.,   782.,   783.,   784.,
      785.,   786.,   787.,   788.,   789.,   790.,   791.,   792.,   4818.,
      4824.,  4830.,  4836.,  0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     817.,   818.,   819.,   820.,
      821.,   822.,   823.,   824.,   825.,   826.,   827.,   828.,   829.,
      830.,   831.,   832.,   833.,   834.,   835.,   836.,   837.,   838.,
      839.,   840.,   5106.,  5112.,  5118.,  5124.,  0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     865.,
      866.,   867.,   868.,   869.,   870.,   871.,   872.,   873.,   874.,
      875.,   876.,   877.,   878.,   879.,   880.,   881.,   882.,   883.,
      884.,   885.,   886.,   887.,   888.,   5394.,  5400.,  5406.,  5412.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     913.,   914.,   915.,   916.,   917.,   918.,   919.,
      920.,   921.,   922.,   923.,   924.,   925.,   926.,   927.,   928.,
      929.,   930.,   931.,   932.,   933.,   934.,   935.,   936.,   5682.,
      5688.,  5694.,  5700.,  0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     6486.,  6492.,  6498.,  6504.,
      6510.,  6516.,  6522.,  6528.,  6534.,  6540.,  6546.,  6552.,  6558.,
      6564.,  6570.,  6576.,  6582.,  6588.,  6594.,  6600.,  6606.,  6612.,
      6618.,  6624.,  40140., 40176., 40212., 40248., 0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     1249.,  1250.,  1251.,  1252.,
      1253.,  1254.,  1255.,  1256.,  1257.,  1258.,  1259.,  1260.,  1261.,
      1262.,  1263.,  1264.,  1265.,  1266.,  1267.,  1268.,  1269.,  1270.,
      1271.,  1272.,  7698.,  7704.,  7710.,  7716.,  0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     1297.,
      1298.,  1299.,  1300.,  1301.,  1302.,  1303.,  1304.,  1305.,  1306.,
      1307.,  1308.,  1309.,  1310.,  1311.,  1312.,  1313.,  1314.,  1315.,
      1316.,  1317.,  1318.,  1319.,  1320.,  7986.,  7992.,  7998.,  8004.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     1345.,  1346.,  1347.,  1348.,  1349.,  1350.,  1351.,
      1352.,  1353.,  1354.,  1355.,  1356.,  1357.,  1358.,  1359.,  1360.,
      1361.,  1362.,  1363.,  1364.,  1365.,  1366.,  1367.,  1368.,  8274.,
      8280.,  8286.,  8292.,  0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     1393.,  1394.,  1395.,  1396.,
      1397.,  1398.,  1399.,  1400.,  1401.,  1402.,  1403.,  1404.,  1405.,
      1406.,  1407.,  1408.,  1409.,  1410.,  1411.,  1412.,  1413.,  1414.,
      1415.,  1416.,  8562.,  8568.,  8574.,  8580.,  0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     1441.,
      1442.,  1443.,  1444.,  1445.,  1446.,  1447.,  1448.,  1449.,  1450.,
      1451.,  1452.,  1453.,  1454.,  1455.,  1456.,  1457.,  1458.,  1459.,
      1460.,  1461.,  1462.,  1463.,  1464.,  8850.,  8856.,  8862.,  8868.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     1489.,  1490.,  1491.,  1492.,  1493.,  1494.,  1495.,
      1496.,  1497.,  1498.,  1499.,  1500.,  1501.,  1502.,  1503.,  1504.,
      1505.,  1506.,  1507.,  1508.,  1509.,  1510.,  1511.,  1512.,  9138.,
      9144.,  9150.,  9156.,  0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     1537.,  1538.,  1539.,  1540.,
      1541.,  1542.,  1543.,  1544.,  1545.,  1546.,  1547.,  1548.,  1549.,
      1550.,  1551.,  1552.,  1553.,  1554.,  1555.,  1556.,  1557.,  1558.,
      1559.,  1560.,  9426.,  9432.,  9438.,  9444.,  0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     10230.,
      10236., 10242., 10248., 10254., 10260., 10266., 10272., 10278., 10284.,
      10290., 10296., 10302., 10308., 10314., 10320., 10326., 10332., 10338.,
      10344., 10350., 10356., 10362., 10368., 62604., 62640., 62676., 62712.};
  const std::array<int, 4> in_shape = {{3, 13, 12, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x13x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 9.,  10., 11., 12., 13., 14., 15., 16.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 17., 18., 19., 20., 21., 22., 23., 24.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 25., 26., 27., 28., 29., 30., 31., 32.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 33., 34., 35., 36., 37., 38., 39., 40.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 41., 42., 43., 44., 45., 46., 47., 48.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 49., 50., 51., 52., 53., 54., 55., 56.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 57., 58., 59., 60., 61., 62., 63., 64.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 65., 66., 67., 68., 69., 70., 71., 72.};
  const std::array<int, 4> in_shape = {{3, 13, 12, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x13x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,
      1.,    2.,    3.,    4.,    5.,    6.,    7.,    63.,    0.,    0.,
      0.,    0.,    0.,    14.,   15.,   16.,   17.,   18.,    19.,   20.,
      141.,  0.,    0.,    0.,    0.,    0.,    27.,   28.,    29.,   30.,
      31.,   32.,   33.,   219.,  0.,    0.,    0.,    0.,     0.,    40.,
      41.,   42.,   43.,   44.,   45.,   46.,   297.,  0.,     0.,    0.,
      0.,    0.,    53.,   54.,   55.,   56.,   57.,   58.,    59.,   375.,
      0.,    0.,    0.,    0.,    0.,    66.,   67.,   68.,    69.,   70.,
      71.,   72.,   453.,  0.,    0.,    0.,    0.,    0.,     79.,   80.,
      81.,   82.,   83.,   84.,   85.,   531.,  0.,    0.,     0.,    0.,
      0.,    747.,  753.,  759.,  765.,  771.,  777.,  783.,   4824., 0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,    170.,
      171.,  172.,  173.,  174.,  175.,  176.,  1077., 0.,     0.,    0.,
      0.,    0.,    183.,  184.,  185.,  186.,  187.,  188.,   189.,  1155.,
      0.,    0.,    0.,    0.,    0.,    196.,  197.,  198.,   199.,  200.,
      201.,  202.,  1233., 0.,    0.,    0.,    0.,    0.,     209.,  210.,
      211.,  212.,  213.,  214.,  215.,  1311., 0.,    0.,     0.,    0.,
      0.,    222.,  223.,  224.,  225.,  226.,  227.,  228.,   1389., 0.,
      0.,    0.,    0.,    0.,    235.,  236.,  237.,  238.,   239.,  240.,
      241.,  1467., 0.,    0.,    0.,    0.,    0.,    248.,   249.,  250.,
      251.,  252.,  253.,  254.,  1545., 0.,    0.,    0.,     0.,    0.,
      1761., 1767., 1773., 1779., 1785., 1791., 1797., 10908., 0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     0.,    0.,
      0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,     339.,  340.,
      341.,  342.,  343.,  344.,  345.,  2091., 0.,    0.,     0.,    0.,
      0.,    352.,  353.,  354.,  355.,  356.,  357.,  358.,   2169., 0.,
      0.,    0.,    0.,    0.,    365.,  366.,  367.,  368.,   369.,  370.,
      371.,  2247., 0.,    0.,    0.,    0.,    0.,    378.,   379.,  380.,
      381.,  382.,  383.,  384.,  2325., 0.,    0.,    0.,     0.,    0.,
      391.,  392.,  393.,  394.,  395.,  396.,  397.,  2403.,  0.,    0.,
      0.,    0.,    0.,    404.,  405.,  406.,  407.,  408.,   409.,  410.,
      2481., 0.,    0.,    0.,    0.,    0.,    417.,  418.,   419.,  420.,
      421.,  422.,  423.,  2559., 0.,    0.,    0.,    0.,     0.,    2775.,
      2781., 2787., 2793., 2799., 2805., 2811., 16992.};
  const std::array<int, 4> in_shape = {{3, 13, 13, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x13x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 1.,  2.,  3.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 4., 5., 6.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  7., 8., 9., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  10., 11., 12., 0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  13., 14., 15., 0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 16., 17., 18., 0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  19., 20.,
      21., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  22., 23., 24., 0.,
      0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,  25., 26., 27.};
  const std::array<int, 4> in_shape = {{3, 13, 13, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x13x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      1.,    2.,    3.,     4.,    5.,     6.,     7.,    8.,    9.,    10.,
      11.,   12.,   13.,    14.,   120.,   126.,   0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     27.,   28.,   29.,   30.,
      31.,   32.,   33.,    34.,   35.,    36.,    37.,   38.,   39.,   40.,
      276.,  282.,  0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    53.,    54.,   55.,    56.,    57.,   58.,   59.,   60.,
      61.,   62.,   63.,    64.,   65.,    66.,    432.,  438.,  0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    79.,   80.,
      81.,   82.,   83.,    84.,   85.,    86.,    87.,   88.,   89.,   90.,
      91.,   92.,   588.,   594.,  0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    105.,   106.,   107.,  108.,  109.,  110.,
      111.,  112.,  113.,   114.,  115.,   116.,   117.,  118.,  744.,  750.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      131.,  132.,  133.,   134.,  135.,   136.,   137.,  138.,  139.,  140.,
      141.,  142.,  143.,   144.,  900.,   906.,   0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     157.,  158.,  159.,  160.,
      161.,  162.,  163.,   164.,  165.,   166.,   167.,  168.,  169.,  170.,
      1056., 1062., 0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    1488.,  1494., 1500.,  1506.,  1512., 1518., 1524., 1530.,
      1536., 1542., 1548.,  1554., 1560.,  1566.,  9612., 9648., 0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    339.,  340.,
      341.,  342.,  343.,   344.,  345.,   346.,   347.,  348.,  349.,  350.,
      351.,  352.,  2148.,  2154., 0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    365.,   366.,   367.,  368.,  369.,  370.,
      371.,  372.,  373.,   374.,  375.,   376.,   377.,  378.,  2304., 2310.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      391.,  392.,  393.,   394.,  395.,   396.,   397.,  398.,  399.,  400.,
      401.,  402.,  403.,   404.,  2460.,  2466.,  0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     417.,  418.,  419.,  420.,
      421.,  422.,  423.,   424.,  425.,   426.,   427.,  428.,  429.,  430.,
      2616., 2622., 0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    443.,   444.,  445.,   446.,   447.,  448.,  449.,  450.,
      451.,  452.,  453.,   454.,  455.,   456.,   2772., 2778., 0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    469.,  470.,
      471.,  472.,  473.,   474.,  475.,   476.,   477.,  478.,  479.,  480.,
      481.,  482.,  2928.,  2934., 0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    495.,   496.,   497.,  498.,  499.,  500.,
      501.,  502.,  503.,   504.,  505.,   506.,   507.,  508.,  3084., 3090.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      3516., 3522., 3528.,  3534., 3540.,  3546.,  3552., 3558., 3564., 3570.,
      3576., 3582., 3588.,  3594., 21780., 21816., 0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     677.,  678.,  679.,  680.,
      681.,  682.,  683.,   684.,  685.,   686.,   687.,  688.,  689.,  690.,
      4176., 4182., 0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    703.,   704.,  705.,   706.,   707.,  708.,  709.,  710.,
      711.,  712.,  713.,   714.,  715.,   716.,   4332., 4338., 0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    729.,  730.,
      731.,  732.,  733.,   734.,  735.,   736.,   737.,  738.,  739.,  740.,
      741.,  742.,  4488.,  4494., 0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    755.,   756.,   757.,  758.,  759.,  760.,
      761.,  762.,  763.,   764.,  765.,   766.,   767.,  768.,  4644., 4650.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      781.,  782.,  783.,   784.,  785.,   786.,   787.,  788.,  789.,  790.,
      791.,  792.,  793.,   794.,  4800.,  4806.,  0.,    0.,    0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     807.,  808.,  809.,  810.,
      811.,  812.,  813.,   814.,  815.,   816.,   817.,  818.,  819.,  820.,
      4956., 4962., 0.,     0.,    0.,     0.,     0.,    0.,    0.,    0.,
      0.,    0.,    833.,   834.,  835.,   836.,   837.,  838.,  839.,  840.,
      841.,  842.,  843.,   844.,  845.,   846.,   5112., 5118., 0.,    0.,
      0.,    0.,    0.,     0.,    0.,     0.,     0.,    0.,    5544., 5550.,
      5556., 5562., 5568.,  5574., 5580.,  5586.,  5592., 5598., 5604., 5610.,
      5616., 5622., 33948., 33984.};
  const std::array<int, 4> in_shape = {{3, 13, 13, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x13x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.,  2.,  3.,  4.,  5.,
      6.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  7.,  8.,  9.,  10., 11., 12., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  13., 14., 15., 16., 17., 18., 0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  19., 20., 21., 22., 23., 24., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  25.,
      26., 27., 28., 29., 30., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  31., 32., 33., 34., 35.,
      36., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  37., 38., 39., 40.,
      41., 42., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  43., 44., 45., 46., 47., 48., 0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  49., 50., 51., 52., 53., 54.};
  const std::array<int, 4> in_shape = {{3, 13, 13, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x13x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     1.,     2.,     3.,     4.,     5.,     6.,     7.,     8.,
      9.,     10.,    11.,    12.,    13.,    14.,    15.,    16.,    17.,
      18.,    19.,    20.,    21.,    22.,    23.,    24.,    25.,    26.,
      27.,    28.,    234.,   240.,   246.,   252.,   0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     53.,
      54.,    55.,    56.,    57.,    58.,    59.,    60.,    61.,    62.,
      63.,    64.,    65.,    66.,    67.,    68.,    69.,    70.,    71.,
      72.,    73.,    74.,    75.,    76.,    77.,    78.,    79.,    80.,
      546.,   552.,   558.,   564.,   0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     105.,   106.,   107.,
      108.,   109.,   110.,   111.,   112.,   113.,   114.,   115.,   116.,
      117.,   118.,   119.,   120.,   121.,   122.,   123.,   124.,   125.,
      126.,   127.,   128.,   129.,   130.,   131.,   132.,   858.,   864.,
      870.,   876.,   0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     157.,   158.,   159.,   160.,   161.,
      162.,   163.,   164.,   165.,   166.,   167.,   168.,   169.,   170.,
      171.,   172.,   173.,   174.,   175.,   176.,   177.,   178.,   179.,
      180.,   181.,   182.,   183.,   184.,   1170.,  1176.,  1182.,  1188.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     209.,   210.,   211.,   212.,   213.,   214.,   215.,
      216.,   217.,   218.,   219.,   220.,   221.,   222.,   223.,   224.,
      225.,   226.,   227.,   228.,   229.,   230.,   231.,   232.,   233.,
      234.,   235.,   236.,   1482.,  1488.,  1494.,  1500.,  0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      261.,   262.,   263.,   264.,   265.,   266.,   267.,   268.,   269.,
      270.,   271.,   272.,   273.,   274.,   275.,   276.,   277.,   278.,
      279.,   280.,   281.,   282.,   283.,   284.,   285.,   286.,   287.,
      288.,   1794.,  1800.,  1806.,  1812.,  0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     313.,   314.,
      315.,   316.,   317.,   318.,   319.,   320.,   321.,   322.,   323.,
      324.,   325.,   326.,   327.,   328.,   329.,   330.,   331.,   332.,
      333.,   334.,   335.,   336.,   337.,   338.,   339.,   340.,   2106.,
      2112.,  2118.,  2124.,  0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     2970.,  2976.,  2982.,  2988.,
      2994.,  3000.,  3006.,  3012.,  3018.,  3024.,  3030.,  3036.,  3042.,
      3048.,  3054.,  3060.,  3066.,  3072.,  3078.,  3084.,  3090.,  3096.,
      3102.,  3108.,  3114.,  3120.,  3126.,  3132.,  19188., 19224., 19260.,
      19296., 0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     677.,   678.,   679.,   680.,   681.,   682.,   683.,
      684.,   685.,   686.,   687.,   688.,   689.,   690.,   691.,   692.,
      693.,   694.,   695.,   696.,   697.,   698.,   699.,   700.,   701.,
      702.,   703.,   704.,   4290.,  4296.,  4302.,  4308.,  0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      729.,   730.,   731.,   732.,   733.,   734.,   735.,   736.,   737.,
      738.,   739.,   740.,   741.,   742.,   743.,   744.,   745.,   746.,
      747.,   748.,   749.,   750.,   751.,   752.,   753.,   754.,   755.,
      756.,   4602.,  4608.,  4614.,  4620.,  0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     781.,   782.,
      783.,   784.,   785.,   786.,   787.,   788.,   789.,   790.,   791.,
      792.,   793.,   794.,   795.,   796.,   797.,   798.,   799.,   800.,
      801.,   802.,   803.,   804.,   805.,   806.,   807.,   808.,   4914.,
      4920.,  4926.,  4932.,  0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     833.,   834.,   835.,   836.,
      837.,   838.,   839.,   840.,   841.,   842.,   843.,   844.,   845.,
      846.,   847.,   848.,   849.,   850.,   851.,   852.,   853.,   854.,
      855.,   856.,   857.,   858.,   859.,   860.,   5226.,  5232.,  5238.,
      5244.,  0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     885.,   886.,   887.,   888.,   889.,   890.,
      891.,   892.,   893.,   894.,   895.,   896.,   897.,   898.,   899.,
      900.,   901.,   902.,   903.,   904.,   905.,   906.,   907.,   908.,
      909.,   910.,   911.,   912.,   5538.,  5544.,  5550.,  5556.,  0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     937.,   938.,   939.,   940.,   941.,   942.,   943.,   944.,
      945.,   946.,   947.,   948.,   949.,   950.,   951.,   952.,   953.,
      954.,   955.,   956.,   957.,   958.,   959.,   960.,   961.,   962.,
      963.,   964.,   5850.,  5856.,  5862.,  5868.,  0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     989.,
      990.,   991.,   992.,   993.,   994.,   995.,   996.,   997.,   998.,
      999.,   1000.,  1001.,  1002.,  1003.,  1004.,  1005.,  1006.,  1007.,
      1008.,  1009.,  1010.,  1011.,  1012.,  1013.,  1014.,  1015.,  1016.,
      6162.,  6168.,  6174.,  6180.,  0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     7026.,  7032.,  7038.,
      7044.,  7050.,  7056.,  7062.,  7068.,  7074.,  7080.,  7086.,  7092.,
      7098.,  7104.,  7110.,  7116.,  7122.,  7128.,  7134.,  7140.,  7146.,
      7152.,  7158.,  7164.,  7170.,  7176.,  7182.,  7188.,  43524., 43560.,
      43596., 43632., 0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     1353.,  1354.,  1355.,  1356.,  1357.,  1358.,
      1359.,  1360.,  1361.,  1362.,  1363.,  1364.,  1365.,  1366.,  1367.,
      1368.,  1369.,  1370.,  1371.,  1372.,  1373.,  1374.,  1375.,  1376.,
      1377.,  1378.,  1379.,  1380.,  8346.,  8352.,  8358.,  8364.,  0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     1405.,  1406.,  1407.,  1408.,  1409.,  1410.,  1411.,  1412.,
      1413.,  1414.,  1415.,  1416.,  1417.,  1418.,  1419.,  1420.,  1421.,
      1422.,  1423.,  1424.,  1425.,  1426.,  1427.,  1428.,  1429.,  1430.,
      1431.,  1432.,  8658.,  8664.,  8670.,  8676.,  0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     1457.,
      1458.,  1459.,  1460.,  1461.,  1462.,  1463.,  1464.,  1465.,  1466.,
      1467.,  1468.,  1469.,  1470.,  1471.,  1472.,  1473.,  1474.,  1475.,
      1476.,  1477.,  1478.,  1479.,  1480.,  1481.,  1482.,  1483.,  1484.,
      8970.,  8976.,  8982.,  8988.,  0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     1509.,  1510.,  1511.,
      1512.,  1513.,  1514.,  1515.,  1516.,  1517.,  1518.,  1519.,  1520.,
      1521.,  1522.,  1523.,  1524.,  1525.,  1526.,  1527.,  1528.,  1529.,
      1530.,  1531.,  1532.,  1533.,  1534.,  1535.,  1536.,  9282.,  9288.,
      9294.,  9300.,  0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     1561.,  1562.,  1563.,  1564.,  1565.,
      1566.,  1567.,  1568.,  1569.,  1570.,  1571.,  1572.,  1573.,  1574.,
      1575.,  1576.,  1577.,  1578.,  1579.,  1580.,  1581.,  1582.,  1583.,
      1584.,  1585.,  1586.,  1587.,  1588.,  9594.,  9600.,  9606.,  9612.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     1613.,  1614.,  1615.,  1616.,  1617.,  1618.,  1619.,
      1620.,  1621.,  1622.,  1623.,  1624.,  1625.,  1626.,  1627.,  1628.,
      1629.,  1630.,  1631.,  1632.,  1633.,  1634.,  1635.,  1636.,  1637.,
      1638.,  1639.,  1640.,  9906.,  9912.,  9918.,  9924.,  0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      1665.,  1666.,  1667.,  1668.,  1669.,  1670.,  1671.,  1672.,  1673.,
      1674.,  1675.,  1676.,  1677.,  1678.,  1679.,  1680.,  1681.,  1682.,
      1683.,  1684.,  1685.,  1686.,  1687.,  1688.,  1689.,  1690.,  1691.,
      1692.,  10218., 10224., 10230., 10236., 0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     11082., 11088.,
      11094., 11100., 11106., 11112., 11118., 11124., 11130., 11136., 11142.,
      11148., 11154., 11160., 11166., 11172., 11178., 11184., 11190., 11196.,
      11202., 11208., 11214., 11220., 11226., 11232., 11238., 11244., 67860.,
      67896., 67932., 67968.};
  const std::array<int, 4> in_shape = {{3, 13, 13, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x13x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 1.,  2.,  3.,  4.,   5.,   6.,   7.,   8.,   9.,   10.,  11.,  12.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 13., 14., 15., 16.,  17.,  18.,  19.,  20.,  21.,  22.,  23.,  24.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 25., 26., 27., 28.,  29.,  30.,  31.,  32.,  33.,  34.,  35.,  36.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 37., 38., 39., 40.,  41.,  42.,  43.,  44.,  45.,  46.,  47.,  48.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 49., 50., 51., 52.,  53.,  54.,  55.,  56.,  57.,  58.,  59.,  60.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 61., 62., 63., 64.,  65.,  66.,  67.,  68.,  69.,  70.,  71.,  72.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 73., 74., 75., 76.,  77.,  78.,  79.,  80.,  81.,  82.,  83.,  84.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 85., 86., 87., 88.,  89.,  90.,  91.,  92.,  93.,  94.,  95.,  96.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 0.,  0.,  0.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
      0., 97., 98., 99., 100., 101., 102., 103., 104., 105., 106., 107., 108.};
  const std::array<int, 4> in_shape = {{3, 13, 13, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x13x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    1.,    2.,    3.,    4.,    5.,
      6.,    7.,    8.,    69.,    0.,    0.,    0.,    0.,    0.,    15.,
      16.,   17.,   18.,   19.,    20.,   21.,   22.,   153.,  0.,    0.,
      0.,    0.,    0.,    29.,    30.,   31.,   32.,   33.,   34.,   35.,
      36.,   237.,  0.,    0.,     0.,    0.,    0.,    43.,   44.,   45.,
      46.,   47.,   48.,   49.,    50.,   321.,  0.,    0.,    0.,    0.,
      0.,    57.,   58.,   59.,    60.,   61.,   62.,   63.,   64.,   405.,
      0.,    0.,    0.,    0.,     0.,    71.,   72.,   73.,   74.,   75.,
      76.,   77.,   78.,   489.,   0.,    0.,    0.,    0.,    0.,    85.,
      86.,   87.,   88.,   89.,    90.,   91.,   92.,   573.,  0.,    0.,
      0.,    0.,    0.,    804.,   810.,  816.,  822.,  828.,  834.,  840.,
      846.,  5202., 0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    183.,  184.,  185.,
      186.,  187.,  188.,  189.,   190.,  1161., 0.,    0.,    0.,    0.,
      0.,    197.,  198.,  199.,   200.,  201.,  202.,  203.,  204.,  1245.,
      0.,    0.,    0.,    0.,     0.,    211.,  212.,  213.,  214.,  215.,
      216.,  217.,  218.,  1329.,  0.,    0.,    0.,    0.,    0.,    225.,
      226.,  227.,  228.,  229.,   230.,  231.,  232.,  1413., 0.,    0.,
      0.,    0.,    0.,    239.,   240.,  241.,  242.,  243.,  244.,  245.,
      246.,  1497., 0.,    0.,     0.,    0.,    0.,    253.,  254.,  255.,
      256.,  257.,  258.,  259.,   260.,  1581., 0.,    0.,    0.,    0.,
      0.,    267.,  268.,  269.,   270.,  271.,  272.,  273.,  274.,  1665.,
      0.,    0.,    0.,    0.,     0.,    1896., 1902., 1908., 1914., 1920.,
      1926., 1932., 1938., 11754., 0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    365.,
      366.,  367.,  368.,  369.,   370.,  371.,  372.,  2253., 0.,    0.,
      0.,    0.,    0.,    379.,   380.,  381.,  382.,  383.,  384.,  385.,
      386.,  2337., 0.,    0.,     0.,    0.,    0.,    393.,  394.,  395.,
      396.,  397.,  398.,  399.,   400.,  2421., 0.,    0.,    0.,    0.,
      0.,    407.,  408.,  409.,   410.,  411.,  412.,  413.,  414.,  2505.,
      0.,    0.,    0.,    0.,     0.,    421.,  422.,  423.,  424.,  425.,
      426.,  427.,  428.,  2589.,  0.,    0.,    0.,    0.,    0.,    435.,
      436.,  437.,  438.,  439.,   440.,  441.,  442.,  2673., 0.,    0.,
      0.,    0.,    0.,    449.,   450.,  451.,  452.,  453.,  454.,  455.,
      456.,  2757., 0.,    0.,     0.,    0.,    0.,    2988., 2994., 3000.,
      3006., 3012., 3018., 3024.,  3030., 18306.};
  const std::array<int, 4> in_shape = {{3, 13, 14, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x13x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      1.,  2.,  3.,  4.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 5.,
      6.,  7.,  8.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 9., 10.,
      11., 12., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  13., 14., 15., 16., 0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  17., 18., 19., 20., 0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      21., 22., 23., 24., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  0.,  25., 26., 27., 28., 0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  0.,  29., 30., 31., 32., 0.,  0., 0., 0., 0., 0., 0., 0.,
      0.,  0.,  33., 34., 35., 36.};
  const std::array<int, 4> in_shape = {{3, 13, 14, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x13x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      1.,     2.,    3.,     4.,     5.,    6.,    7.,     8.,     9.,    10.,
      11.,    12.,   13.,    14.,    15.,   16.,   132.,   138.,   0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     29.,   30.,
      31.,    32.,   33.,    34.,    35.,   36.,   37.,    38.,    39.,   40.,
      41.,    42.,   43.,    44.,    300.,  306.,  0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    57.,    58.,    59.,   60.,
      61.,    62.,   63.,    64.,    65.,   66.,   67.,    68.,    69.,   70.,
      71.,    72.,   468.,   474.,   0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     85.,   86.,   87.,    88.,    89.,   90.,
      91.,    92.,   93.,    94.,    95.,   96.,   97.,    98.,    99.,   100.,
      636.,   642.,  0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    113.,   114.,   115.,  116.,  117.,   118.,   119.,  120.,
      121.,   122.,  123.,   124.,   125.,  126.,  127.,   128.,   804.,  810.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      141.,   142.,  143.,   144.,   145.,  146.,  147.,   148.,   149.,  150.,
      151.,   152.,  153.,   154.,   155.,  156.,  972.,   978.,   0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     169.,  170.,
      171.,   172.,  173.,   174.,   175.,  176.,  177.,   178.,   179.,  180.,
      181.,   182.,  183.,   184.,   1140., 1146., 0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    1602.,  1608.,  1614., 1620.,
      1626.,  1632., 1638.,  1644.,  1650., 1656., 1662.,  1668.,  1674., 1680.,
      1686.,  1692., 10368., 10404., 0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     365.,  366.,  367.,   368.,   369.,  370.,
      371.,   372.,  373.,   374.,   375.,  376.,  377.,   378.,   379.,  380.,
      2316.,  2322., 0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    393.,   394.,   395.,  396.,  397.,   398.,   399.,  400.,
      401.,   402.,  403.,   404.,   405.,  406.,  407.,   408.,   2484., 2490.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      421.,   422.,  423.,   424.,   425.,  426.,  427.,   428.,   429.,  430.,
      431.,   432.,  433.,   434.,   435.,  436.,  2652.,  2658.,  0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     449.,  450.,
      451.,   452.,  453.,   454.,   455.,  456.,  457.,   458.,   459.,  460.,
      461.,   462.,  463.,   464.,   2820., 2826., 0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    477.,   478.,   479.,  480.,
      481.,   482.,  483.,   484.,   485.,  486.,  487.,   488.,   489.,  490.,
      491.,   492.,  2988.,  2994.,  0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     505.,  506.,  507.,   508.,   509.,  510.,
      511.,   512.,  513.,   514.,   515.,  516.,  517.,   518.,   519.,  520.,
      3156.,  3162., 0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    533.,   534.,   535.,  536.,  537.,   538.,   539.,  540.,
      541.,   542.,  543.,   544.,   545.,  546.,  547.,   548.,   3324., 3330.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      3786.,  3792., 3798.,  3804.,  3810., 3816., 3822.,  3828.,  3834., 3840.,
      3846.,  3852., 3858.,  3864.,  3870., 3876., 23472., 23508., 0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     729.,  730.,
      731.,   732.,  733.,   734.,   735.,  736.,  737.,   738.,   739.,  740.,
      741.,   742.,  743.,   744.,   4500., 4506., 0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    757.,   758.,   759.,  760.,
      761.,   762.,  763.,   764.,   765.,  766.,  767.,   768.,   769.,  770.,
      771.,   772.,  4668.,  4674.,  0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     785.,  786.,  787.,   788.,   789.,  790.,
      791.,   792.,  793.,   794.,   795.,  796.,  797.,   798.,   799.,  800.,
      4836.,  4842., 0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    813.,   814.,   815.,  816.,  817.,   818.,   819.,  820.,
      821.,   822.,  823.,   824.,   825.,  826.,  827.,   828.,   5004., 5010.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      841.,   842.,  843.,   844.,   845.,  846.,  847.,   848.,   849.,  850.,
      851.,   852.,  853.,   854.,   855.,  856.,  5172.,  5178.,  0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     869.,  870.,
      871.,   872.,  873.,   874.,   875.,  876.,  877.,   878.,   879.,  880.,
      881.,   882.,  883.,   884.,   5340., 5346., 0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    897.,   898.,   899.,  900.,
      901.,   902.,  903.,   904.,   905.,  906.,  907.,   908.,   909.,  910.,
      911.,   912.,  5508.,  5514.,  0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     5970., 5976., 5982.,  5988.,  5994., 6000.,
      6006.,  6012., 6018.,  6024.,  6030., 6036., 6042.,  6048.,  6054., 6060.,
      36576., 36612.};
  const std::array<int, 4> in_shape = {{3, 13, 14, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x13x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  9.,  10.,
      11., 12., 13., 14., 15., 16., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  17., 18., 19., 20.,
      21., 22., 23., 24., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  25., 26., 27., 28., 29., 30., 31., 32., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  33., 34., 35., 36., 37., 38., 39., 40., 0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      41., 42., 43., 44., 45., 46., 47., 48., 0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  49., 50., 51., 52., 53., 54., 55.,
      56., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  57., 58., 59., 60., 61., 62., 63., 64., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  65., 66., 67., 68., 69., 70., 71., 72.};
  const std::array<int, 4> in_shape = {{3, 13, 14, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x13x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     1.,      2.,      3.,      4.,
      5.,     6.,     7.,     8.,     9.,      10.,     11.,     12.,
      13.,    14.,    15.,    16.,    17.,     18.,     19.,     20.,
      21.,    22.,    23.,    24.,    25.,     26.,     27.,     28.,
      29.,    30.,    31.,    32.,    258.,    264.,    270.,    276.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     57.,     58.,     59.,     60.,
      61.,    62.,    63.,    64.,    65.,     66.,     67.,     68.,
      69.,    70.,    71.,    72.,    73.,     74.,     75.,     76.,
      77.,    78.,    79.,    80.,    81.,     82.,     83.,     84.,
      85.,    86.,    87.,    88.,    594.,    600.,    606.,    612.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     113.,    114.,    115.,    116.,
      117.,   118.,   119.,   120.,   121.,    122.,    123.,    124.,
      125.,   126.,   127.,   128.,   129.,    130.,    131.,    132.,
      133.,   134.,   135.,   136.,   137.,    138.,    139.,    140.,
      141.,   142.,   143.,   144.,   930.,    936.,    942.,    948.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     169.,    170.,    171.,    172.,
      173.,   174.,   175.,   176.,   177.,    178.,    179.,    180.,
      181.,   182.,   183.,   184.,   185.,    186.,    187.,    188.,
      189.,   190.,   191.,   192.,   193.,    194.,    195.,    196.,
      197.,   198.,   199.,   200.,   1266.,   1272.,   1278.,   1284.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     225.,    226.,    227.,    228.,
      229.,   230.,   231.,   232.,   233.,    234.,    235.,    236.,
      237.,   238.,   239.,   240.,   241.,    242.,    243.,    244.,
      245.,   246.,   247.,   248.,   249.,    250.,    251.,    252.,
      253.,   254.,   255.,   256.,   1602.,   1608.,   1614.,   1620.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     281.,    282.,    283.,    284.,
      285.,   286.,   287.,   288.,   289.,    290.,    291.,    292.,
      293.,   294.,   295.,   296.,   297.,    298.,    299.,    300.,
      301.,   302.,   303.,   304.,   305.,    306.,    307.,    308.,
      309.,   310.,   311.,   312.,   1938.,   1944.,   1950.,   1956.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     337.,    338.,    339.,    340.,
      341.,   342.,   343.,   344.,   345.,    346.,    347.,    348.,
      349.,   350.,   351.,   352.,   353.,    354.,    355.,    356.,
      357.,   358.,   359.,   360.,   361.,    362.,    363.,    364.,
      365.,   366.,   367.,   368.,   2274.,   2280.,   2286.,   2292.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     3198.,   3204.,   3210.,   3216.,
      3222.,  3228.,  3234.,  3240.,  3246.,   3252.,   3258.,   3264.,
      3270.,  3276.,  3282.,  3288.,  3294.,   3300.,   3306.,   3312.,
      3318.,  3324.,  3330.,  3336.,  3342.,   3348.,   3354.,   3360.,
      3366.,  3372.,  3378.,  3384.,  20700.,  20736.,  20772.,  20808.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     729.,    730.,    731.,    732.,
      733.,   734.,   735.,   736.,   737.,    738.,    739.,    740.,
      741.,   742.,   743.,   744.,   745.,    746.,    747.,    748.,
      749.,   750.,   751.,   752.,   753.,    754.,    755.,    756.,
      757.,   758.,   759.,   760.,   4626.,   4632.,   4638.,   4644.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     785.,    786.,    787.,    788.,
      789.,   790.,   791.,   792.,   793.,    794.,    795.,    796.,
      797.,   798.,   799.,   800.,   801.,    802.,    803.,    804.,
      805.,   806.,   807.,   808.,   809.,    810.,    811.,    812.,
      813.,   814.,   815.,   816.,   4962.,   4968.,   4974.,   4980.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     841.,    842.,    843.,    844.,
      845.,   846.,   847.,   848.,   849.,    850.,    851.,    852.,
      853.,   854.,   855.,   856.,   857.,    858.,    859.,    860.,
      861.,   862.,   863.,   864.,   865.,    866.,    867.,    868.,
      869.,   870.,   871.,   872.,   5298.,   5304.,   5310.,   5316.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     897.,    898.,    899.,    900.,
      901.,   902.,   903.,   904.,   905.,    906.,    907.,    908.,
      909.,   910.,   911.,   912.,   913.,    914.,    915.,    916.,
      917.,   918.,   919.,   920.,   921.,    922.,    923.,    924.,
      925.,   926.,   927.,   928.,   5634.,   5640.,   5646.,   5652.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     953.,    954.,    955.,    956.,
      957.,   958.,   959.,   960.,   961.,    962.,    963.,    964.,
      965.,   966.,   967.,   968.,   969.,    970.,    971.,    972.,
      973.,   974.,   975.,   976.,   977.,    978.,    979.,    980.,
      981.,   982.,   983.,   984.,   5970.,   5976.,   5982.,   5988.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     1009.,   1010.,   1011.,   1012.,
      1013.,  1014.,  1015.,  1016.,  1017.,   1018.,   1019.,   1020.,
      1021.,  1022.,  1023.,  1024.,  1025.,   1026.,   1027.,   1028.,
      1029.,  1030.,  1031.,  1032.,  1033.,   1034.,   1035.,   1036.,
      1037.,  1038.,  1039.,  1040.,  6306.,   6312.,   6318.,   6324.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     1065.,   1066.,   1067.,   1068.,
      1069.,  1070.,  1071.,  1072.,  1073.,   1074.,   1075.,   1076.,
      1077.,  1078.,  1079.,  1080.,  1081.,   1082.,   1083.,   1084.,
      1085.,  1086.,  1087.,  1088.,  1089.,   1090.,   1091.,   1092.,
      1093.,  1094.,  1095.,  1096.,  6642.,   6648.,   6654.,   6660.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     7566.,   7572.,   7578.,   7584.,
      7590.,  7596.,  7602.,  7608.,  7614.,   7620.,   7626.,   7632.,
      7638.,  7644.,  7650.,  7656.,  7662.,   7668.,   7674.,   7680.,
      7686.,  7692.,  7698.,  7704.,  7710.,   7716.,   7722.,   7728.,
      7734.,  7740.,  7746.,  7752.,  46908.,  46944.,  46980.,  47016.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     1457.,   1458.,   1459.,   1460.,
      1461.,  1462.,  1463.,  1464.,  1465.,   1466.,   1467.,   1468.,
      1469.,  1470.,  1471.,  1472.,  1473.,   1474.,   1475.,   1476.,
      1477.,  1478.,  1479.,  1480.,  1481.,   1482.,   1483.,   1484.,
      1485.,  1486.,  1487.,  1488.,  8994.,   9000.,   9006.,   9012.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     1513.,   1514.,   1515.,   1516.,
      1517.,  1518.,  1519.,  1520.,  1521.,   1522.,   1523.,   1524.,
      1525.,  1526.,  1527.,  1528.,  1529.,   1530.,   1531.,   1532.,
      1533.,  1534.,  1535.,  1536.,  1537.,   1538.,   1539.,   1540.,
      1541.,  1542.,  1543.,  1544.,  9330.,   9336.,   9342.,   9348.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     1569.,   1570.,   1571.,   1572.,
      1573.,  1574.,  1575.,  1576.,  1577.,   1578.,   1579.,   1580.,
      1581.,  1582.,  1583.,  1584.,  1585.,   1586.,   1587.,   1588.,
      1589.,  1590.,  1591.,  1592.,  1593.,   1594.,   1595.,   1596.,
      1597.,  1598.,  1599.,  1600.,  9666.,   9672.,   9678.,   9684.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     1625.,   1626.,   1627.,   1628.,
      1629.,  1630.,  1631.,  1632.,  1633.,   1634.,   1635.,   1636.,
      1637.,  1638.,  1639.,  1640.,  1641.,   1642.,   1643.,   1644.,
      1645.,  1646.,  1647.,  1648.,  1649.,   1650.,   1651.,   1652.,
      1653.,  1654.,  1655.,  1656.,  10002.,  10008.,  10014.,  10020.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     1681.,   1682.,   1683.,   1684.,
      1685.,  1686.,  1687.,  1688.,  1689.,   1690.,   1691.,   1692.,
      1693.,  1694.,  1695.,  1696.,  1697.,   1698.,   1699.,   1700.,
      1701.,  1702.,  1703.,  1704.,  1705.,   1706.,   1707.,   1708.,
      1709.,  1710.,  1711.,  1712.,  20074.,  20088.,  20102.,  20116.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     11368.,  11376.,  11384.,  11392.,
      11400., 11408., 11416., 11424., 117272., 117360., 117448., 117536.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.};
  const std::array<int, 4> in_shape = {{3, 13, 14, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x13x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  1.,  2.,    3.,    4.,    5.,    6.,  7.,  8.,  9.,  10., 11.,
      12., 13., 14., 15.,   16.,   0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    17.,   18., 19., 20., 21., 22., 23.,
      24., 25., 26., 27.,   28.,   29.,   30.,   31., 32., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  33., 34., 35.,
      36., 37., 38., 39.,   40.,   41.,   42.,   43., 44., 45., 46., 47., 48.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  49., 50.,   51.,   52.,   53.,   54., 55., 56., 57., 58., 59.,
      60., 61., 62., 63.,   64.,   0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    65.,   66., 67., 68., 69., 70., 71.,
      72., 73., 74., 75.,   76.,   77.,   78.,   79., 80., 0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  81., 82., 83.,
      84., 85., 86., 87.,   88.,   89.,   90.,   91., 92., 93., 94., 95., 96.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  1428., 1440., 1452., 1464., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,    0.,    0.,    0.,    0.,  0.,  0.,  0.,  0.,  0.};
  const std::array<int, 4> in_shape = {{3, 13, 14, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x14x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 1.,    2.,    3.,    4.,    5.,    6.,    57.,
      0., 0., 0., 0., 0., 13.,   14.,   15.,   16.,   17.,   18.,   129.,
      0., 0., 0., 0., 0., 25.,   26.,   27.,   28.,   29.,   30.,   201.,
      0., 0., 0., 0., 0., 37.,   38.,   39.,   40.,   41.,   42.,   273.,
      0., 0., 0., 0., 0., 49.,   50.,   51.,   52.,   53.,   54.,   345.,
      0., 0., 0., 0., 0., 61.,   62.,   63.,   64.,   65.,   66.,   417.,
      0., 0., 0., 0., 0., 73.,   74.,   75.,   76.,   77.,   78.,   489.,
      0., 0., 0., 0., 0., 85.,   86.,   87.,   88.,   89.,   90.,   561.,
      0., 0., 0., 0., 0., 762.,  768.,  774.,  780.,  786.,  792.,  4878.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 169.,  170.,  171.,  172.,  173.,  174.,  1065.,
      0., 0., 0., 0., 0., 181.,  182.,  183.,  184.,  185.,  186.,  1137.,
      0., 0., 0., 0., 0., 193.,  194.,  195.,  196.,  197.,  198.,  1209.,
      0., 0., 0., 0., 0., 205.,  206.,  207.,  208.,  209.,  210.,  1281.,
      0., 0., 0., 0., 0., 217.,  218.,  219.,  220.,  221.,  222.,  1353.,
      0., 0., 0., 0., 0., 229.,  230.,  231.,  232.,  233.,  234.,  1425.,
      0., 0., 0., 0., 0., 241.,  242.,  243.,  244.,  245.,  246.,  1497.,
      0., 0., 0., 0., 0., 253.,  254.,  255.,  256.,  257.,  258.,  1569.,
      0., 0., 0., 0., 0., 1770., 1776., 1782., 1788., 1794., 1800., 10926.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0., 0., 0., 0., 0., 337.,  338.,  339.,  340.,  341.,  342.,  2073.,
      0., 0., 0., 0., 0., 349.,  350.,  351.,  352.,  353.,  354.,  2145.,
      0., 0., 0., 0., 0., 361.,  362.,  363.,  364.,  365.,  366.,  2217.,
      0., 0., 0., 0., 0., 373.,  374.,  375.,  376.,  377.,  378.,  2289.,
      0., 0., 0., 0., 0., 385.,  386.,  387.,  388.,  389.,  390.,  2361.,
      0., 0., 0., 0., 0., 397.,  398.,  399.,  400.,  401.,  402.,  2433.,
      0., 0., 0., 0., 0., 409.,  410.,  411.,  412.,  413.,  414.,  2505.,
      0., 0., 0., 0., 0., 421.,  422.,  423.,  424.,  425.,  426.,  2577.,
      0., 0., 0., 0., 0., 2778., 2784., 2790., 2796., 2802., 2808., 16974.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x14x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 1.,  2.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 3.,  4.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 5.,  6.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 7.,  8.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 9.,  10., 0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 11., 12., 0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 13., 14., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 15., 16.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 0.,  0.,
      0., 0., 17., 18., 0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 19., 20.,
      0., 0., 0.,  0.,  0., 0., 0.,  0.,  0., 0., 21., 22., 0., 0., 0.,  0.,
      0., 0., 0.,  0.,  0., 0., 23., 24.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x14x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      1.,     2.,     3.,    4.,    5.,    6.,    7.,     8.,    9.,    10.,
      11.,    12.,    108.,  114.,  0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    25.,   26.,   27.,    28.,   29.,   30.,
      31.,    32.,    33.,   34.,   35.,   36.,   252.,   258.,  0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    49.,   50.,
      51.,    52.,    53.,   54.,   55.,   56.,   57.,    58.,   59.,   60.,
      396.,   402.,   0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     73.,   74.,   75.,   76.,   77.,    78.,   79.,   80.,
      81.,    82.,    83.,   84.,   540.,  546.,  0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    97.,    98.,   99.,   100.,
      101.,   102.,   103.,  104.,  105.,  106.,  107.,   108.,  684.,  690.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      121.,   122.,   123.,  124.,  125.,  126.,  127.,   128.,  129.,  130.,
      131.,   132.,   828.,  834.,  0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    145.,  146.,  147.,   148.,  149.,  150.,
      151.,   152.,   153.,  154.,  155.,  156.,  972.,   978.,  0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    169.,  170.,
      171.,   172.,   173.,  174.,  175.,  176.,  177.,   178.,  179.,  180.,
      1116.,  1122.,  0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     1518., 1524., 1530., 1536., 1542.,  1548., 1554., 1560.,
      1566.,  1572.,  1578., 1584., 9720., 9756., 0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    337.,   338.,  339.,  340.,
      341.,   342.,   343.,  344.,  345.,  346.,  347.,   348.,  2124., 2130.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      361.,   362.,   363.,  364.,  365.,  366.,  367.,   368.,  369.,  370.,
      371.,   372.,   2268., 2274., 0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    385.,  386.,  387.,   388.,  389.,  390.,
      391.,   392.,   393.,  394.,  395.,  396.,  2412.,  2418., 0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    409.,  410.,
      411.,   412.,   413.,  414.,  415.,  416.,  417.,   418.,  419.,  420.,
      2556.,  2562.,  0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     433.,  434.,  435.,  436.,  437.,   438.,  439.,  440.,
      441.,   442.,   443.,  444.,  2700., 2706., 0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    457.,   458.,  459.,  460.,
      461.,   462.,   463.,  464.,  465.,  466.,  467.,   468.,  2844., 2850.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      481.,   482.,   483.,  484.,  485.,  486.,  487.,   488.,  489.,  490.,
      491.,   492.,   2988., 2994., 0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    505.,  506.,  507.,   508.,  509.,  510.,
      511.,   512.,   513.,  514.,  515.,  516.,  3132.,  3138., 0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    3534., 3540.,
      3546.,  3552.,  3558., 3564., 3570., 3576., 3582.,  3588., 3594., 3600.,
      21816., 21852., 0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     673.,  674.,  675.,  676.,  677.,   678.,  679.,  680.,
      681.,   682.,   683.,  684.,  4140., 4146., 0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    697.,   698.,  699.,  700.,
      701.,   702.,   703.,  704.,  705.,  706.,  707.,   708.,  4284., 4290.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      721.,   722.,   723.,  724.,  725.,  726.,  727.,   728.,  729.,  730.,
      731.,   732.,   4428., 4434., 0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    745.,  746.,  747.,   748.,  749.,  750.,
      751.,   752.,   753.,  754.,  755.,  756.,  4572.,  4578., 0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    769.,  770.,
      771.,   772.,   773.,  774.,  775.,  776.,  777.,   778.,  779.,  780.,
      4716.,  4722.,  0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     793.,  794.,  795.,  796.,  797.,   798.,  799.,  800.,
      801.,   802.,   803.,  804.,  4860., 4866., 0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    0.,    0.,    817.,   818.,  819.,  820.,
      821.,   822.,   823.,  824.,  825.,  826.,  827.,   828.,  5004., 5010.,
      0.,     0.,     0.,    0.,    0.,    0.,    0.,     0.,    0.,    0.,
      841.,   842.,   843.,  844.,  845.,  846.,  847.,   848.,  849.,  850.,
      851.,   852.,   5148., 5154., 0.,    0.,    0.,     0.,    0.,    0.,
      0.,     0.,     0.,    0.,    5550., 5556., 5562.,  5568., 5574., 5580.,
      5586.,  5592.,  5598., 5604., 5610., 5616., 33912., 33948.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x14x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 1.,  2.,  3.,  4.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 5.,  6.,  7.,  8.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 9.,  10., 11., 12., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 13., 14., 15., 16.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 17., 18., 19., 20., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 21., 22., 23., 24.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 25., 26., 27., 28., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 29., 30., 31., 32.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 33., 34., 35., 36., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 37., 38., 39., 40.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 41., 42., 43., 44., 0., 0., 0., 0., 0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 45., 46., 47., 48.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x14x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     1.,
      2.,     3.,     4.,     5.,     6.,     7.,     8.,     9.,     10.,
      11.,    12.,    13.,    14.,    15.,    16.,    17.,    18.,    19.,
      20.,    21.,    22.,    23.,    24.,    210.,   216.,   222.,   228.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     49.,    50.,    51.,    52.,    53.,    54.,    55.,
      56.,    57.,    58.,    59.,    60.,    61.,    62.,    63.,    64.,
      65.,    66.,    67.,    68.,    69.,    70.,    71.,    72.,    498.,
      504.,   510.,   516.,   0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     97.,    98.,    99.,    100.,
      101.,   102.,   103.,   104.,   105.,   106.,   107.,   108.,   109.,
      110.,   111.,   112.,   113.,   114.,   115.,   116.,   117.,   118.,
      119.,   120.,   786.,   792.,   798.,   804.,   0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     145.,
      146.,   147.,   148.,   149.,   150.,   151.,   152.,   153.,   154.,
      155.,   156.,   157.,   158.,   159.,   160.,   161.,   162.,   163.,
      164.,   165.,   166.,   167.,   168.,   1074.,  1080.,  1086.,  1092.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     193.,   194.,   195.,   196.,   197.,   198.,   199.,
      200.,   201.,   202.,   203.,   204.,   205.,   206.,   207.,   208.,
      209.,   210.,   211.,   212.,   213.,   214.,   215.,   216.,   1362.,
      1368.,  1374.,  1380.,  0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     241.,   242.,   243.,   244.,
      245.,   246.,   247.,   248.,   249.,   250.,   251.,   252.,   253.,
      254.,   255.,   256.,   257.,   258.,   259.,   260.,   261.,   262.,
      263.,   264.,   1650.,  1656.,  1662.,  1668.,  0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     289.,
      290.,   291.,   292.,   293.,   294.,   295.,   296.,   297.,   298.,
      299.,   300.,   301.,   302.,   303.,   304.,   305.,   306.,   307.,
      308.,   309.,   310.,   311.,   312.,   1938.,  1944.,  1950.,  1956.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     337.,   338.,   339.,   340.,   341.,   342.,   343.,
      344.,   345.,   346.,   347.,   348.,   349.,   350.,   351.,   352.,
      353.,   354.,   355.,   356.,   357.,   358.,   359.,   360.,   2226.,
      2232.,  2238.,  2244.,  0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     3030.,  3036.,  3042.,  3048.,
      3054.,  3060.,  3066.,  3072.,  3078.,  3084.,  3090.,  3096.,  3102.,
      3108.,  3114.,  3120.,  3126.,  3132.,  3138.,  3144.,  3150.,  3156.,
      3162.,  3168.,  19404., 19440., 19476., 19512., 0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     673.,   674.,   675.,   676.,
      677.,   678.,   679.,   680.,   681.,   682.,   683.,   684.,   685.,
      686.,   687.,   688.,   689.,   690.,   691.,   692.,   693.,   694.,
      695.,   696.,   4242.,  4248.,  4254.,  4260.,  0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     721.,
      722.,   723.,   724.,   725.,   726.,   727.,   728.,   729.,   730.,
      731.,   732.,   733.,   734.,   735.,   736.,   737.,   738.,   739.,
      740.,   741.,   742.,   743.,   744.,   4530.,  4536.,  4542.,  4548.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     769.,   770.,   771.,   772.,   773.,   774.,   775.,
      776.,   777.,   778.,   779.,   780.,   781.,   782.,   783.,   784.,
      785.,   786.,   787.,   788.,   789.,   790.,   791.,   792.,   4818.,
      4824.,  4830.,  4836.,  0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     817.,   818.,   819.,   820.,
      821.,   822.,   823.,   824.,   825.,   826.,   827.,   828.,   829.,
      830.,   831.,   832.,   833.,   834.,   835.,   836.,   837.,   838.,
      839.,   840.,   5106.,  5112.,  5118.,  5124.,  0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     865.,
      866.,   867.,   868.,   869.,   870.,   871.,   872.,   873.,   874.,
      875.,   876.,   877.,   878.,   879.,   880.,   881.,   882.,   883.,
      884.,   885.,   886.,   887.,   888.,   5394.,  5400.,  5406.,  5412.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     913.,   914.,   915.,   916.,   917.,   918.,   919.,
      920.,   921.,   922.,   923.,   924.,   925.,   926.,   927.,   928.,
      929.,   930.,   931.,   932.,   933.,   934.,   935.,   936.,   5682.,
      5688.,  5694.,  5700.,  0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     961.,   962.,   963.,   964.,
      965.,   966.,   967.,   968.,   969.,   970.,   971.,   972.,   973.,
      974.,   975.,   976.,   977.,   978.,   979.,   980.,   981.,   982.,
      983.,   984.,   5970.,  5976.,  5982.,  5988.,  0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     1009.,
      1010.,  1011.,  1012.,  1013.,  1014.,  1015.,  1016.,  1017.,  1018.,
      1019.,  1020.,  1021.,  1022.,  1023.,  1024.,  1025.,  1026.,  1027.,
      1028.,  1029.,  1030.,  1031.,  1032.,  6258.,  6264.,  6270.,  6276.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     7062.,  7068.,  7074.,  7080.,  7086.,  7092.,  7098.,
      7104.,  7110.,  7116.,  7122.,  7128.,  7134.,  7140.,  7146.,  7152.,
      7158.,  7164.,  7170.,  7176.,  7182.,  7188.,  7194.,  7200.,  43596.,
      43632., 43668., 43704., 0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     1345.,  1346.,  1347.,  1348.,  1349.,  1350.,  1351.,
      1352.,  1353.,  1354.,  1355.,  1356.,  1357.,  1358.,  1359.,  1360.,
      1361.,  1362.,  1363.,  1364.,  1365.,  1366.,  1367.,  1368.,  8274.,
      8280.,  8286.,  8292.,  0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     1393.,  1394.,  1395.,  1396.,
      1397.,  1398.,  1399.,  1400.,  1401.,  1402.,  1403.,  1404.,  1405.,
      1406.,  1407.,  1408.,  1409.,  1410.,  1411.,  1412.,  1413.,  1414.,
      1415.,  1416.,  8562.,  8568.,  8574.,  8580.,  0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     1441.,
      1442.,  1443.,  1444.,  1445.,  1446.,  1447.,  1448.,  1449.,  1450.,
      1451.,  1452.,  1453.,  1454.,  1455.,  1456.,  1457.,  1458.,  1459.,
      1460.,  1461.,  1462.,  1463.,  1464.,  8850.,  8856.,  8862.,  8868.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     1489.,  1490.,  1491.,  1492.,  1493.,  1494.,  1495.,
      1496.,  1497.,  1498.,  1499.,  1500.,  1501.,  1502.,  1503.,  1504.,
      1505.,  1506.,  1507.,  1508.,  1509.,  1510.,  1511.,  1512.,  9138.,
      9144.,  9150.,  9156.,  0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     1537.,  1538.,  1539.,  1540.,
      1541.,  1542.,  1543.,  1544.,  1545.,  1546.,  1547.,  1548.,  1549.,
      1550.,  1551.,  1552.,  1553.,  1554.,  1555.,  1556.,  1557.,  1558.,
      1559.,  1560.,  9426.,  9432.,  9438.,  9444.,  0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     1585.,
      1586.,  1587.,  1588.,  1589.,  1590.,  1591.,  1592.,  1593.,  1594.,
      1595.,  1596.,  1597.,  1598.,  1599.,  1600.,  1601.,  1602.,  1603.,
      1604.,  1605.,  1606.,  1607.,  1608.,  9714.,  9720.,  9726.,  9732.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     1633.,  1634.,  1635.,  1636.,  1637.,  1638.,  1639.,
      1640.,  1641.,  1642.,  1643.,  1644.,  1645.,  1646.,  1647.,  1648.,
      1649.,  1650.,  1651.,  1652.,  1653.,  1654.,  1655.,  1656.,  10002.,
      10008., 10014., 10020., 0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     1681.,  1682.,  1683.,  1684.,
      1685.,  1686.,  1687.,  1688.,  1689.,  1690.,  1691.,  1692.,  1693.,
      1694.,  1695.,  1696.,  1697.,  1698.,  1699.,  1700.,  1701.,  1702.,
      1703.,  1704.,  10290., 10296., 10302., 10308., 0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
      0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,     11094.,
      11100., 11106., 11112., 11118., 11124., 11130., 11136., 11142., 11148.,
      11154., 11160., 11166., 11172., 11178., 11184., 11190., 11196., 11202.,
      11208., 11214., 11220., 11226., 11232., 67788., 67824., 67860., 67896.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x14x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 9.,  10., 11., 12., 13., 14., 15., 16.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 17., 18., 19., 20., 21., 22., 23., 24.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 25., 26., 27., 28., 29., 30., 31., 32.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 33., 34., 35., 36., 37., 38., 39., 40.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 41., 42., 43., 44., 45., 46., 47., 48.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 49., 50., 51., 52., 53., 54., 55., 56.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 57., 58., 59., 60., 61., 62., 63., 64.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 65., 66., 67., 68., 69., 70., 71., 72.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 73., 74., 75., 76., 77., 78., 79., 80.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 81., 82., 83., 84., 85., 86., 87., 88.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0., 0., 0., 0., 0., 0., 0., 0., 89., 90., 91., 92., 93., 94., 95., 96.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x14x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      1.,    2.,    3.,    4.,     5.,    6.,    7.,    63.,   0.,    0.,
      0.,    0.,    0.,    14.,    15.,   16.,   17.,   18.,   19.,   20.,
      141.,  0.,    0.,    0.,     0.,    0.,    27.,   28.,   29.,   30.,
      31.,   32.,   33.,   219.,   0.,    0.,    0.,    0.,    0.,    40.,
      41.,   42.,   43.,   44.,    45.,   46.,   297.,  0.,    0.,    0.,
      0.,    0.,    53.,   54.,    55.,   56.,   57.,   58.,   59.,   375.,
      0.,    0.,    0.,    0.,     0.,    66.,   67.,   68.,   69.,   70.,
      71.,   72.,   453.,  0.,     0.,    0.,    0.,    0.,    79.,   80.,
      81.,   82.,   83.,   84.,    85.,   531.,  0.,    0.,    0.,    0.,
      0.,    92.,   93.,   94.,    95.,   96.,   97.,   98.,   609.,  0.,
      0.,    0.,    0.,    0.,     825.,  831.,  837.,  843.,  849.,  855.,
      861.,  5292., 0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    183.,  184.,   185.,  186.,  187.,  188.,  189.,  1155.,
      0.,    0.,    0.,    0.,     0.,    196.,  197.,  198.,  199.,  200.,
      201.,  202.,  1233., 0.,     0.,    0.,    0.,    0.,    209.,  210.,
      211.,  212.,  213.,  214.,   215.,  1311., 0.,    0.,    0.,    0.,
      0.,    222.,  223.,  224.,   225.,  226.,  227.,  228.,  1389., 0.,
      0.,    0.,    0.,    0.,     235.,  236.,  237.,  238.,  239.,  240.,
      241.,  1467., 0.,    0.,     0.,    0.,    0.,    248.,  249.,  250.,
      251.,  252.,  253.,  254.,   1545., 0.,    0.,    0.,    0.,    0.,
      261.,  262.,  263.,  264.,   265.,  266.,  267.,  1623., 0.,    0.,
      0.,    0.,    0.,    274.,   275.,  276.,  277.,  278.,  279.,  280.,
      1701., 0.,    0.,    0.,     0.,    0.,    1917., 1923., 1929., 1935.,
      1941., 1947., 1953., 11844., 0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,    0.,    0.,     365.,  366.,  367.,  368.,  369.,  370.,
      371.,  2247., 0.,    0.,     0.,    0.,    0.,    378.,  379.,  380.,
      381.,  382.,  383.,  384.,   2325., 0.,    0.,    0.,    0.,    0.,
      391.,  392.,  393.,  394.,   395.,  396.,  397.,  2403., 0.,    0.,
      0.,    0.,    0.,    404.,   405.,  406.,  407.,  408.,  409.,  410.,
      2481., 0.,    0.,    0.,     0.,    0.,    417.,  418.,  419.,  420.,
      421.,  422.,  423.,  2559.,  0.,    0.,    0.,    0.,    0.,    430.,
      431.,  432.,  433.,  434.,   435.,  436.,  2637., 0.,    0.,    0.,
      0.,    0.,    443.,  444.,   445.,  446.,  447.,  448.,  449.,  2715.,
      0.,    0.,    0.,    0.,     0.,    456.,  457.,  458.,  459.,  460.,
      461.,  462.,  2793., 0.,     0.,    0.,    0.,    0.,    3009., 3015.,
      3021., 3027., 3033., 3039.,  3045., 18396.};
  const std::array<int, 4> in_shape = {{3, 14, 13, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x14x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  1.,  2.,  3.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  4.,  5.,  6.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  7.,  8.,  9.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 10.,
      11., 12., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  13., 14., 15., 0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  16., 17., 18., 0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  19., 20., 21., 0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  22., 23., 24., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  25., 26., 27., 0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  28., 29., 30., 0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  0.,  0.,  31., 32., 33., 0.,  0.,  0.,  0.,  0., 0., 0.,
      0.,  0.,  0.,  34., 35., 36.};
  const std::array<int, 4> in_shape = {{3, 14, 13, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x14x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      1.,     2.,    3.,     4.,     5.,    6.,    7.,     8.,     9.,    10.,
      11.,    12.,   13.,    14.,    120.,  126.,  0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    27.,    28.,    29.,   30.,
      31.,    32.,   33.,    34.,    35.,   36.,   37.,    38.,    39.,   40.,
      276.,   282.,  0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    53.,    54.,    55.,   56.,   57.,    58.,    59.,   60.,
      61.,    62.,   63.,    64.,    65.,   66.,   432.,   438.,   0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     79.,   80.,
      81.,    82.,   83.,    84.,    85.,   86.,   87.,    88.,    89.,   90.,
      91.,    92.,   588.,   594.,   0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     105.,  106.,  107.,   108.,   109.,  110.,
      111.,   112.,  113.,   114.,   115.,  116.,  117.,   118.,   744.,  750.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      131.,   132.,  133.,   134.,   135.,  136.,  137.,   138.,   139.,  140.,
      141.,   142.,  143.,   144.,   900.,  906.,  0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    157.,   158.,   159.,  160.,
      161.,   162.,  163.,   164.,   165.,  166.,  167.,   168.,   169.,  170.,
      1056.,  1062., 0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    183.,   184.,   185.,  186.,  187.,   188.,   189.,  190.,
      191.,   192.,  193.,   194.,   195.,  196.,  1212.,  1218.,  0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     1644., 1650.,
      1656.,  1662., 1668.,  1674.,  1680., 1686., 1692.,  1698.,  1704., 1710.,
      1716.,  1722., 10548., 10584., 0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     365.,  366.,  367.,   368.,   369.,  370.,
      371.,   372.,  373.,   374.,   375.,  376.,  377.,   378.,   2304., 2310.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      391.,   392.,  393.,   394.,   395.,  396.,  397.,   398.,   399.,  400.,
      401.,   402.,  403.,   404.,   2460., 2466., 0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    417.,   418.,   419.,  420.,
      421.,   422.,  423.,   424.,   425.,  426.,  427.,   428.,   429.,  430.,
      2616.,  2622., 0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    443.,   444.,   445.,  446.,  447.,   448.,   449.,  450.,
      451.,   452.,  453.,   454.,   455.,  456.,  2772.,  2778.,  0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     469.,  470.,
      471.,   472.,  473.,   474.,   475.,  476.,  477.,   478.,   479.,  480.,
      481.,   482.,  2928.,  2934.,  0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     495.,  496.,  497.,   498.,   499.,  500.,
      501.,   502.,  503.,   504.,   505.,  506.,  507.,   508.,   3084., 3090.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      521.,   522.,  523.,   524.,   525.,  526.,  527.,   528.,   529.,  530.,
      531.,   532.,  533.,   534.,   3240., 3246., 0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    547.,   548.,   549.,  550.,
      551.,   552.,  553.,   554.,   555.,  556.,  557.,   558.,   559.,  560.,
      3396.,  3402., 0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    3828.,  3834.,  3840., 3846., 3852.,  3858.,  3864., 3870.,
      3876.,  3882., 3888.,  3894.,  3900., 3906., 23652., 23688., 0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     729.,  730.,
      731.,   732.,  733.,   734.,   735.,  736.,  737.,   738.,   739.,  740.,
      741.,   742.,  4488.,  4494.,  0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     755.,  756.,  757.,   758.,   759.,  760.,
      761.,   762.,  763.,   764.,   765.,  766.,  767.,   768.,   4644., 4650.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      781.,   782.,  783.,   784.,   785.,  786.,  787.,   788.,   789.,  790.,
      791.,   792.,  793.,   794.,   4800., 4806., 0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    807.,   808.,   809.,  810.,
      811.,   812.,  813.,   814.,   815.,  816.,  817.,   818.,   819.,  820.,
      4956.,  4962., 0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    833.,   834.,   835.,  836.,  837.,   838.,   839.,  840.,
      841.,   842.,  843.,   844.,   845.,  846.,  5112.,  5118.,  0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     859.,  860.,
      861.,   862.,  863.,   864.,   865.,  866.,  867.,   868.,   869.,  870.,
      871.,   872.,  5268.,  5274.,  0.,    0.,    0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     885.,  886.,  887.,   888.,   889.,  890.,
      891.,   892.,  893.,   894.,   895.,  896.,  897.,   898.,   5424., 5430.,
      0.,     0.,    0.,     0.,     0.,    0.,    0.,     0.,     0.,    0.,
      911.,   912.,  913.,   914.,   915.,  916.,  917.,   918.,   919.,  920.,
      921.,   922.,  923.,   924.,   5580., 5586., 0.,     0.,     0.,    0.,
      0.,     0.,    0.,     0.,     0.,    0.,    6012.,  6018.,  6024., 6030.,
      6036.,  6042., 6048.,  6054.,  6060., 6066., 6072.,  6078.,  6084., 6090.,
      36756., 36792.};
  const std::array<int, 4> in_shape = {{3, 14, 13, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x14x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.,  2.,  3.,  4.,  5.,
      6.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  7.,  8.,  9.,  10., 11., 12., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  13., 14., 15., 16., 17., 18., 0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  19., 20.,
      21., 22., 23., 24., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  25.,
      26., 27., 28., 29., 30., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  31., 32., 33., 34., 35.,
      36., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  37., 38., 39., 40., 41., 42., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  43., 44., 45., 46., 47., 48., 0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  49., 50., 51., 52., 53., 54., 0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  55.,
      56., 57., 58., 59., 60., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  61., 62., 63., 64., 65.,
      66., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  67., 68., 69., 70., 71., 72.};
  const std::array<int, 4> in_shape = {{3, 14, 13, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x14x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      1.,     2.,     3.,     4.,     5.,      6.,      7.,      8.,
      9.,     10.,    11.,    12.,    13.,     14.,     15.,     16.,
      17.,    18.,    19.,    20.,    21.,     22.,     23.,     24.,
      25.,    26.,    27.,    28.,    234.,    240.,    246.,    252.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     53.,     54.,     55.,     56.,
      57.,    58.,    59.,    60.,    61.,     62.,     63.,     64.,
      65.,    66.,    67.,    68.,    69.,     70.,     71.,     72.,
      73.,    74.,    75.,    76.,    77.,     78.,     79.,     80.,
      546.,   552.,   558.,   564.,   0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      105.,   106.,   107.,   108.,   109.,    110.,    111.,    112.,
      113.,   114.,   115.,   116.,   117.,    118.,    119.,    120.,
      121.,   122.,   123.,   124.,   125.,    126.,    127.,    128.,
      129.,   130.,   131.,   132.,   858.,    864.,    870.,    876.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     157.,    158.,    159.,    160.,
      161.,   162.,   163.,   164.,   165.,    166.,    167.,    168.,
      169.,   170.,   171.,   172.,   173.,    174.,    175.,    176.,
      177.,   178.,   179.,   180.,   181.,    182.,    183.,    184.,
      1170.,  1176.,  1182.,  1188.,  0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      209.,   210.,   211.,   212.,   213.,    214.,    215.,    216.,
      217.,   218.,   219.,   220.,   221.,    222.,    223.,    224.,
      225.,   226.,   227.,   228.,   229.,    230.,    231.,    232.,
      233.,   234.,   235.,   236.,   1482.,   1488.,   1494.,   1500.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     261.,    262.,    263.,    264.,
      265.,   266.,   267.,   268.,   269.,    270.,    271.,    272.,
      273.,   274.,   275.,   276.,   277.,    278.,    279.,    280.,
      281.,   282.,   283.,   284.,   285.,    286.,    287.,    288.,
      1794.,  1800.,  1806.,  1812.,  0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      313.,   314.,   315.,   316.,   317.,    318.,    319.,    320.,
      321.,   322.,   323.,   324.,   325.,    326.,    327.,    328.,
      329.,   330.,   331.,   332.,   333.,    334.,    335.,    336.,
      337.,   338.,   339.,   340.,   2106.,   2112.,   2118.,   2124.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     365.,    366.,    367.,    368.,
      369.,   370.,   371.,   372.,   373.,    374.,    375.,    376.,
      377.,   378.,   379.,   380.,   381.,    382.,    383.,    384.,
      385.,   386.,   387.,   388.,   389.,    390.,    391.,    392.,
      2418.,  2424.,  2430.,  2436.,  0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      3282.,  3288.,  3294.,  3300.,  3306.,   3312.,   3318.,   3324.,
      3330.,  3336.,  3342.,  3348.,  3354.,   3360.,   3366.,   3372.,
      3378.,  3384.,  3390.,  3396.,  3402.,   3408.,   3414.,   3420.,
      3426.,  3432.,  3438.,  3444.,  21060.,  21096.,  21132.,  21168.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      729.,   730.,   731.,   732.,   733.,    734.,    735.,    736.,
      737.,   738.,   739.,   740.,   741.,    742.,    743.,    744.,
      745.,   746.,   747.,   748.,   749.,    750.,    751.,    752.,
      753.,   754.,   755.,   756.,   4602.,   4608.,   4614.,   4620.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     781.,    782.,    783.,    784.,
      785.,   786.,   787.,   788.,   789.,    790.,    791.,    792.,
      793.,   794.,   795.,   796.,   797.,    798.,    799.,    800.,
      801.,   802.,   803.,   804.,   805.,    806.,    807.,    808.,
      4914.,  4920.,  4926.,  4932.,  0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      833.,   834.,   835.,   836.,   837.,    838.,    839.,    840.,
      841.,   842.,   843.,   844.,   845.,    846.,    847.,    848.,
      849.,   850.,   851.,   852.,   853.,    854.,    855.,    856.,
      857.,   858.,   859.,   860.,   5226.,   5232.,   5238.,   5244.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     885.,    886.,    887.,    888.,
      889.,   890.,   891.,   892.,   893.,    894.,    895.,    896.,
      897.,   898.,   899.,   900.,   901.,    902.,    903.,    904.,
      905.,   906.,   907.,   908.,   909.,    910.,    911.,    912.,
      5538.,  5544.,  5550.,  5556.,  0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      937.,   938.,   939.,   940.,   941.,    942.,    943.,    944.,
      945.,   946.,   947.,   948.,   949.,    950.,    951.,    952.,
      953.,   954.,   955.,   956.,   957.,    958.,    959.,    960.,
      961.,   962.,   963.,   964.,   5850.,   5856.,   5862.,   5868.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     989.,    990.,    991.,    992.,
      993.,   994.,   995.,   996.,   997.,    998.,    999.,    1000.,
      1001.,  1002.,  1003.,  1004.,  1005.,   1006.,   1007.,   1008.,
      1009.,  1010.,  1011.,  1012.,  1013.,   1014.,   1015.,   1016.,
      6162.,  6168.,  6174.,  6180.,  0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      1041.,  1042.,  1043.,  1044.,  1045.,   1046.,   1047.,   1048.,
      1049.,  1050.,  1051.,  1052.,  1053.,   1054.,   1055.,   1056.,
      1057.,  1058.,  1059.,  1060.,  1061.,   1062.,   1063.,   1064.,
      1065.,  1066.,  1067.,  1068.,  6474.,   6480.,   6486.,   6492.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     1093.,   1094.,   1095.,   1096.,
      1097.,  1098.,  1099.,  1100.,  1101.,   1102.,   1103.,   1104.,
      1105.,  1106.,  1107.,  1108.,  1109.,   1110.,   1111.,   1112.,
      1113.,  1114.,  1115.,  1116.,  1117.,   1118.,   1119.,   1120.,
      6786.,  6792.,  6798.,  6804.,  0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      7650.,  7656.,  7662.,  7668.,  7674.,   7680.,   7686.,   7692.,
      7698.,  7704.,  7710.,  7716.,  7722.,   7728.,   7734.,   7740.,
      7746.,  7752.,  7758.,  7764.,  7770.,   7776.,   7782.,   7788.,
      7794.,  7800.,  7806.,  7812.,  47268.,  47304.,  47340.,  47376.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      1457.,  1458.,  1459.,  1460.,  1461.,   1462.,   1463.,   1464.,
      1465.,  1466.,  1467.,  1468.,  1469.,   1470.,   1471.,   1472.,
      1473.,  1474.,  1475.,  1476.,  1477.,   1478.,   1479.,   1480.,
      1481.,  1482.,  1483.,  1484.,  8970.,   8976.,   8982.,   8988.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     1509.,   1510.,   1511.,   1512.,
      1513.,  1514.,  1515.,  1516.,  1517.,   1518.,   1519.,   1520.,
      1521.,  1522.,  1523.,  1524.,  1525.,   1526.,   1527.,   1528.,
      1529.,  1530.,  1531.,  1532.,  1533.,   1534.,   1535.,   1536.,
      9282.,  9288.,  9294.,  9300.,  0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      1561.,  1562.,  1563.,  1564.,  1565.,   1566.,   1567.,   1568.,
      1569.,  1570.,  1571.,  1572.,  1573.,   1574.,   1575.,   1576.,
      1577.,  1578.,  1579.,  1580.,  1581.,   1582.,   1583.,   1584.,
      1585.,  1586.,  1587.,  1588.,  9594.,   9600.,   9606.,   9612.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     1613.,   1614.,   1615.,   1616.,
      1617.,  1618.,  1619.,  1620.,  1621.,   1622.,   1623.,   1624.,
      1625.,  1626.,  1627.,  1628.,  1629.,   1630.,   1631.,   1632.,
      1633.,  1634.,  1635.,  1636.,  1637.,   1638.,   1639.,   1640.,
      9906.,  9912.,  9918.,  9924.,  0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      1665.,  1666.,  1667.,  1668.,  1669.,   1670.,   1671.,   1672.,
      1673.,  1674.,  1675.,  1676.,  1677.,   1678.,   1679.,   1680.,
      1681.,  1682.,  1683.,  1684.,  1685.,   1686.,   1687.,   1688.,
      1689.,  1690.,  1691.,  1692.,  10218.,  10224.,  10230.,  10236.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     1717.,   1718.,   1719.,   1720.,
      1721.,  1722.,  1723.,  1724.,  1725.,   1726.,   1727.,   1728.,
      1729.,  1730.,  1731.,  1732.,  1733.,   1734.,   1735.,   1736.,
      1737.,  1738.,  1739.,  1740.,  1741.,   1742.,   1743.,   1744.,
      39978., 40008., 40038., 40068., 0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     106320., 106400., 106480., 106560.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.};
  const std::array<int, 4> in_shape = {{3, 14, 13, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x14x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    1.,   2.,   3.,   4.,
      5.,  6.,  7.,  8.,   9.,    10.,   11.,   12.,   0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      13., 14., 15., 16.,  17.,   18.,   19.,   20.,   21.,  22.,  23.,  24.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   25.,   26.,   27.,   28.,   29.,  30.,  31.,  32.,
      33., 34., 35., 36.,  0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    37.,  38.,  39.,  40.,
      41., 42., 43., 44.,  45.,   46.,   47.,   48.,   0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   49.,   50.,   51.,   52.,   53.,  54.,  55.,  56.,
      57., 58., 59., 60.,  0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    61.,  62.,  63.,  64.,
      65., 66., 67., 68.,  69.,   70.,   71.,   72.,   0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      73., 74., 75., 76.,  77.,   78.,   79.,   80.,   81.,  82.,  83.,  84.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   85.,   86.,   87.,   88.,   89.,  90.,  91.,  92.,
      93., 94., 95., 96.,  0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      97., 98., 99., 100., 101.,  102.,  103.,  104.,  105., 106., 107., 108.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   1125., 1134., 1143., 1152., 0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.,
      0.,  0.,  0.,  0.,   0.,    0.,    0.,    0.,    0.,   0.,   0.,   0.};
  const std::array<int, 4> in_shape = {{3, 14, 13, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x14x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    1.,    2.,    3.,    4.,    5.,
      6.,    7.,     8.,    69.,   0.,    0.,    0.,    0.,    0.,    15.,
      16.,   17.,    18.,   19.,   20.,   21.,   22.,   153.,  0.,    0.,
      0.,    0.,     0.,    29.,   30.,   31.,   32.,   33.,   34.,   35.,
      36.,   237.,   0.,    0.,    0.,    0.,    0.,    43.,   44.,   45.,
      46.,   47.,    48.,   49.,   50.,   321.,  0.,    0.,    0.,    0.,
      0.,    57.,    58.,   59.,   60.,   61.,   62.,   63.,   64.,   405.,
      0.,    0.,     0.,    0.,    0.,    71.,   72.,   73.,   74.,   75.,
      76.,   77.,    78.,   489.,  0.,    0.,    0.,    0.,    0.,    85.,
      86.,   87.,    88.,   89.,   90.,   91.,   92.,   573.,  0.,    0.,
      0.,    0.,     0.,    99.,   100.,  101.,  102.,  103.,  104.,  105.,
      106.,  657.,   0.,    0.,    0.,    0.,    0.,    888.,  894.,  900.,
      906.,  912.,   918.,  924.,  930.,  5706., 0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    197.,   198.,  199.,  200.,  201.,  202.,  203.,  204.,  1245.,
      0.,    0.,     0.,    0.,    0.,    211.,  212.,  213.,  214.,  215.,
      216.,  217.,   218.,  1329., 0.,    0.,    0.,    0.,    0.,    225.,
      226.,  227.,   228.,  229.,  230.,  231.,  232.,  1413., 0.,    0.,
      0.,    0.,     0.,    239.,  240.,  241.,  242.,  243.,  244.,  245.,
      246.,  1497.,  0.,    0.,    0.,    0.,    0.,    253.,  254.,  255.,
      256.,  257.,   258.,  259.,  260.,  1581., 0.,    0.,    0.,    0.,
      0.,    267.,   268.,  269.,  270.,  271.,  272.,  273.,  274.,  1665.,
      0.,    0.,     0.,    0.,    0.,    281.,  282.,  283.,  284.,  285.,
      286.,  287.,   288.,  1749., 0.,    0.,    0.,    0.,    0.,    295.,
      296.,  297.,   298.,  299.,  300.,  301.,  302.,  1833., 0.,    0.,
      0.,    0.,     0.,    2064., 2070., 2076., 2082., 2088., 2094., 2100.,
      2106., 12762., 0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,
      0.,    0.,     0.,    0.,    0.,    0.,    0.,    393.,  394.,  395.,
      396.,  397.,   398.,  399.,  400.,  2421., 0.,    0.,    0.,    0.,
      0.,    407.,   408.,  409.,  410.,  411.,  412.,  413.,  414.,  2505.,
      0.,    0.,     0.,    0.,    0.,    421.,  422.,  423.,  424.,  425.,
      426.,  427.,   428.,  2589., 0.,    0.,    0.,    0.,    0.,    435.,
      436.,  437.,   438.,  439.,  440.,  441.,  442.,  2673., 0.,    0.,
      0.,    0.,     0.,    449.,  450.,  451.,  452.,  453.,  454.,  455.,
      456.,  2757.,  0.,    0.,    0.,    0.,    0.,    463.,  464.,  465.,
      466.,  467.,   468.,  469.,  470.,  2841., 0.,    0.,    0.,    0.,
      0.,    477.,   478.,  479.,  480.,  481.,  482.,  483.,  484.,  2925.,
      0.,    0.,     0.,    0.,    0.,    491.,  492.,  493.,  494.,  495.,
      496.,  497.,   498.,  3009., 0.,    0.,    0.,    0.,    0.,    3240.,
      3246., 3252.,  3258., 3264., 3270., 3276., 3282., 19818.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x14x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      1.,  2.,  3.,  4.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  5.,
      6.,  7.,  8.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  9.,  10.,
      11., 12., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 13., 14., 15.,
      16., 0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  17., 18., 19., 20., 0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      21., 22., 23., 24., 0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  25.,
      26., 27., 28., 0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  29., 30.,
      31., 32., 0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  0.,  33., 34., 35., 36., 0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      0.,  37., 38., 39., 40., 0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  0.,
      41., 42., 43., 44., 0.,  0.,  0., 0., 0., 0., 0., 0., 0.,  0.,  45.,
      46., 47., 48.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x14x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      1.,     2.,     3.,     4.,     5.,     6.,    7.,    8.,    9.,    10.,
      11.,    12.,    13.,    14.,    15.,    16.,   132.,  138.,  0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    29.,   30.,
      31.,    32.,    33.,    34.,    35.,    36.,   37.,   38.,   39.,   40.,
      41.,    42.,    43.,    44.,    300.,   306.,  0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    57.,   58.,   59.,   60.,
      61.,    62.,    63.,    64.,    65.,    66.,   67.,   68.,   69.,   70.,
      71.,    72.,    468.,   474.,   0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     85.,    86.,   87.,   88.,   89.,   90.,
      91.,    92.,    93.,    94.,    95.,    96.,   97.,   98.,   99.,   100.,
      636.,   642.,   0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     113.,   114.,   115.,   116.,  117.,  118.,  119.,  120.,
      121.,   122.,   123.,   124.,   125.,   126.,  127.,  128.,  804.,  810.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      141.,   142.,   143.,   144.,   145.,   146.,  147.,  148.,  149.,  150.,
      151.,   152.,   153.,   154.,   155.,   156.,  972.,  978.,  0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    169.,  170.,
      171.,   172.,   173.,   174.,   175.,   176.,  177.,  178.,  179.,  180.,
      181.,   182.,   183.,   184.,   1140.,  1146., 0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    197.,  198.,  199.,  200.,
      201.,   202.,   203.,   204.,   205.,   206.,  207.,  208.,  209.,  210.,
      211.,   212.,   1308.,  1314.,  0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     1770.,  1776., 1782., 1788., 1794., 1800.,
      1806.,  1812.,  1818.,  1824.,  1830.,  1836., 1842., 1848., 1854., 1860.,
      11376., 11412., 0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     393.,   394.,   395.,   396.,  397.,  398.,  399.,  400.,
      401.,   402.,   403.,   404.,   405.,   406.,  407.,  408.,  2484., 2490.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      421.,   422.,   423.,   424.,   425.,   426.,  427.,  428.,  429.,  430.,
      431.,   432.,   433.,   434.,   435.,   436.,  2652., 2658., 0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    449.,  450.,
      451.,   452.,   453.,   454.,   455.,   456.,  457.,  458.,  459.,  460.,
      461.,   462.,   463.,   464.,   2820.,  2826., 0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    477.,  478.,  479.,  480.,
      481.,   482.,   483.,   484.,   485.,   486.,  487.,  488.,  489.,  490.,
      491.,   492.,   2988.,  2994.,  0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     505.,   506.,  507.,  508.,  509.,  510.,
      511.,   512.,   513.,   514.,   515.,   516.,  517.,  518.,  519.,  520.,
      3156.,  3162.,  0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     533.,   534.,   535.,   536.,  537.,  538.,  539.,  540.,
      541.,   542.,   543.,   544.,   545.,   546.,  547.,  548.,  3324., 3330.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      561.,   562.,   563.,   564.,   565.,   566.,  567.,  568.,  569.,  570.,
      571.,   572.,   573.,   574.,   575.,   576.,  3492., 3498., 0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    589.,  590.,
      591.,   592.,   593.,   594.,   595.,   596.,  597.,  598.,  599.,  600.,
      601.,   602.,   603.,   604.,   3660.,  3666., 0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    4122., 4128., 4134., 4140.,
      4146.,  4152.,  4158.,  4164.,  4170.,  4176., 4182., 4188., 4194., 4200.,
      4206.,  4212.,  25488., 25524., 0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     785.,   786.,  787.,  788.,  789.,  790.,
      791.,   792.,   793.,   794.,   795.,   796.,  797.,  798.,  799.,  800.,
      4836.,  4842.,  0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     813.,   814.,   815.,   816.,  817.,  818.,  819.,  820.,
      821.,   822.,   823.,   824.,   825.,   826.,  827.,  828.,  5004., 5010.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      841.,   842.,   843.,   844.,   845.,   846.,  847.,  848.,  849.,  850.,
      851.,   852.,   853.,   854.,   855.,   856.,  5172., 5178., 0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    869.,  870.,
      871.,   872.,   873.,   874.,   875.,   876.,  877.,  878.,  879.,  880.,
      881.,   882.,   883.,   884.,   5340.,  5346., 0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    897.,  898.,  899.,  900.,
      901.,   902.,   903.,   904.,   905.,   906.,  907.,  908.,  909.,  910.,
      911.,   912.,   5508.,  5514.,  0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     0.,     0.,     925.,   926.,  927.,  928.,  929.,  930.,
      931.,   932.,   933.,   934.,   935.,   936.,  937.,  938.,  939.,  940.,
      5676.,  5682.,  0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      0.,     0.,     953.,   954.,   955.,   956.,  957.,  958.,  959.,  960.,
      961.,   962.,   963.,   964.,   965.,   966.,  967.,  968.,  5844., 5850.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    0.,    0.,
      981.,   982.,   983.,   984.,   985.,   986.,  987.,  988.,  989.,  990.,
      991.,   992.,   993.,   994.,   995.,   996.,  6012., 6018., 0.,    0.,
      0.,     0.,     0.,     0.,     0.,     0.,    0.,    0.,    6474., 6480.,
      6486.,  6492.,  6498.,  6504.,  6510.,  6516., 6522., 6528., 6534., 6540.,
      6546.,  6552.,  6558.,  6564.,  39600., 39636.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x14x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  9.,  10.,
      11., 12., 13., 14., 15., 16., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  17., 18., 19., 20.,
      21., 22., 23., 24., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  25., 26., 27., 28., 29., 30.,
      31., 32., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  33., 34., 35., 36., 37., 38., 39., 40., 0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      41., 42., 43., 44., 45., 46., 47., 48., 0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  49., 50.,
      51., 52., 53., 54., 55., 56., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  57., 58., 59., 60.,
      61., 62., 63., 64., 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  65., 66., 67., 68., 69., 70., 71., 72., 0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  73., 74., 75., 76., 77., 78., 79., 80., 0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
      81., 82., 83., 84., 85., 86., 87., 88., 0.,  0.,  0.,  0.,  0.,  0.,  0.,
      0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  89., 90.,
      91., 92., 93., 94., 95., 96.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, SAME3x14x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     1.,      2.,      3.,      4.,
      5.,     6.,     7.,     8.,     9.,      10.,     11.,     12.,
      13.,    14.,    15.,    16.,    17.,     18.,     19.,     20.,
      21.,    22.,    23.,    24.,    25.,     26.,     27.,     28.,
      29.,    30.,    31.,    32.,    258.,    264.,    270.,    276.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     57.,     58.,     59.,     60.,
      61.,    62.,    63.,    64.,    65.,     66.,     67.,     68.,
      69.,    70.,    71.,    72.,    73.,     74.,     75.,     76.,
      77.,    78.,    79.,    80.,    81.,     82.,     83.,     84.,
      85.,    86.,    87.,    88.,    594.,    600.,    606.,    612.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     113.,    114.,    115.,    116.,
      117.,   118.,   119.,   120.,   121.,    122.,    123.,    124.,
      125.,   126.,   127.,   128.,   129.,    130.,    131.,    132.,
      133.,   134.,   135.,   136.,   137.,    138.,    139.,    140.,
      141.,   142.,   143.,   144.,   930.,    936.,    942.,    948.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     169.,    170.,    171.,    172.,
      173.,   174.,   175.,   176.,   177.,    178.,    179.,    180.,
      181.,   182.,   183.,   184.,   185.,    186.,    187.,    188.,
      189.,   190.,   191.,   192.,   193.,    194.,    195.,    196.,
      197.,   198.,   199.,   200.,   1266.,   1272.,   1278.,   1284.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     225.,    226.,    227.,    228.,
      229.,   230.,   231.,   232.,   233.,    234.,    235.,    236.,
      237.,   238.,   239.,   240.,   241.,    242.,    243.,    244.,
      245.,   246.,   247.,   248.,   249.,    250.,    251.,    252.,
      253.,   254.,   255.,   256.,   1602.,   1608.,   1614.,   1620.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     281.,    282.,    283.,    284.,
      285.,   286.,   287.,   288.,   289.,    290.,    291.,    292.,
      293.,   294.,   295.,   296.,   297.,    298.,    299.,    300.,
      301.,   302.,   303.,   304.,   305.,    306.,    307.,    308.,
      309.,   310.,   311.,   312.,   1938.,   1944.,   1950.,   1956.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     337.,    338.,    339.,    340.,
      341.,   342.,   343.,   344.,   345.,    346.,    347.,    348.,
      349.,   350.,   351.,   352.,   353.,    354.,    355.,    356.,
      357.,   358.,   359.,   360.,   361.,    362.,    363.,    364.,
      365.,   366.,   367.,   368.,   2274.,   2280.,   2286.,   2292.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     393.,    394.,    395.,    396.,
      397.,   398.,   399.,   400.,   401.,    402.,    403.,    404.,
      405.,   406.,   407.,   408.,   409.,    410.,    411.,    412.,
      413.,   414.,   415.,   416.,   417.,    418.,    419.,    420.,
      421.,   422.,   423.,   424.,   2610.,   2616.,   2622.,   2628.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     3534.,   3540.,   3546.,   3552.,
      3558.,  3564.,  3570.,  3576.,  3582.,   3588.,   3594.,   3600.,
      3606.,  3612.,  3618.,  3624.,  3630.,   3636.,   3642.,   3648.,
      3654.,  3660.,  3666.,  3672.,  3678.,   3684.,   3690.,   3696.,
      3702.,  3708.,  3714.,  3720.,  22716.,  22752.,  22788.,  22824.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     785.,    786.,    787.,    788.,
      789.,   790.,   791.,   792.,   793.,    794.,    795.,    796.,
      797.,   798.,   799.,   800.,   801.,    802.,    803.,    804.,
      805.,   806.,   807.,   808.,   809.,    810.,    811.,    812.,
      813.,   814.,   815.,   816.,   4962.,   4968.,   4974.,   4980.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     841.,    842.,    843.,    844.,
      845.,   846.,   847.,   848.,   849.,    850.,    851.,    852.,
      853.,   854.,   855.,   856.,   857.,    858.,    859.,    860.,
      861.,   862.,   863.,   864.,   865.,    866.,    867.,    868.,
      869.,   870.,   871.,   872.,   5298.,   5304.,   5310.,   5316.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     897.,    898.,    899.,    900.,
      901.,   902.,   903.,   904.,   905.,    906.,    907.,    908.,
      909.,   910.,   911.,   912.,   913.,    914.,    915.,    916.,
      917.,   918.,   919.,   920.,   921.,    922.,    923.,    924.,
      925.,   926.,   927.,   928.,   5634.,   5640.,   5646.,   5652.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     953.,    954.,    955.,    956.,
      957.,   958.,   959.,   960.,   961.,    962.,    963.,    964.,
      965.,   966.,   967.,   968.,   969.,    970.,    971.,    972.,
      973.,   974.,   975.,   976.,   977.,    978.,    979.,    980.,
      981.,   982.,   983.,   984.,   5970.,   5976.,   5982.,   5988.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     1009.,   1010.,   1011.,   1012.,
      1013.,  1014.,  1015.,  1016.,  1017.,   1018.,   1019.,   1020.,
      1021.,  1022.,  1023.,  1024.,  1025.,   1026.,   1027.,   1028.,
      1029.,  1030.,  1031.,  1032.,  1033.,   1034.,   1035.,   1036.,
      1037.,  1038.,  1039.,  1040.,  6306.,   6312.,   6318.,   6324.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     1065.,   1066.,   1067.,   1068.,
      1069.,  1070.,  1071.,  1072.,  1073.,   1074.,   1075.,   1076.,
      1077.,  1078.,  1079.,  1080.,  1081.,   1082.,   1083.,   1084.,
      1085.,  1086.,  1087.,  1088.,  1089.,   1090.,   1091.,   1092.,
      1093.,  1094.,  1095.,  1096.,  6642.,   6648.,   6654.,   6660.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     1121.,   1122.,   1123.,   1124.,
      1125.,  1126.,  1127.,  1128.,  1129.,   1130.,   1131.,   1132.,
      1133.,  1134.,  1135.,  1136.,  1137.,   1138.,   1139.,   1140.,
      1141.,  1142.,  1143.,  1144.,  1145.,   1146.,   1147.,   1148.,
      1149.,  1150.,  1151.,  1152.,  6978.,   6984.,   6990.,   6996.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     1177.,   1178.,   1179.,   1180.,
      1181.,  1182.,  1183.,  1184.,  1185.,   1186.,   1187.,   1188.,
      1189.,  1190.,  1191.,  1192.,  1193.,   1194.,   1195.,   1196.,
      1197.,  1198.,  1199.,  1200.,  1201.,   1202.,   1203.,   1204.,
      1205.,  1206.,  1207.,  1208.,  7314.,   7320.,   7326.,   7332.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     8238.,   8244.,   8250.,   8256.,
      8262.,  8268.,  8274.,  8280.,  8286.,   8292.,   8298.,   8304.,
      8310.,  8316.,  8322.,  8328.,  8334.,   8340.,   8346.,   8352.,
      8358.,  8364.,  8370.,  8376.,  8382.,   8388.,   8394.,   8400.,
      8406.,  8412.,  8418.,  8424.,  50940.,  50976.,  51012.,  51048.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     1569.,   1570.,   1571.,   1572.,
      1573.,  1574.,  1575.,  1576.,  1577.,   1578.,   1579.,   1580.,
      1581.,  1582.,  1583.,  1584.,  1585.,   1586.,   1587.,   1588.,
      1589.,  1590.,  1591.,  1592.,  1593.,   1594.,   1595.,   1596.,
      1597.,  1598.,  1599.,  1600.,  9666.,   9672.,   9678.,   9684.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     1625.,   1626.,   1627.,   1628.,
      1629.,  1630.,  1631.,  1632.,  1633.,   1634.,   1635.,   1636.,
      1637.,  1638.,  1639.,  1640.,  1641.,   1642.,   1643.,   1644.,
      1645.,  1646.,  1647.,  1648.,  1649.,   1650.,   1651.,   1652.,
      1653.,  1654.,  1655.,  1656.,  10002.,  10008.,  10014.,  10020.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     1681.,   1682.,   1683.,   1684.,
      1685.,  1686.,  1687.,  1688.,  1689.,   1690.,   1691.,   1692.,
      1693.,  1694.,  1695.,  1696.,  1697.,   1698.,   1699.,   1700.,
      1701.,  1702.,  1703.,  1704.,  1705.,   1706.,   1707.,   1708.,
      1709.,  1710.,  1711.,  1712.,  20508.,  20524.,  20540.,  20556.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     11947.,  11958.,  11969.,  11980.,
      11991., 12002., 12013., 12024., 124565., 124686., 124807., 124928.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     0.,      0.,      0.,      0.,
      0.,     0.,     0.,     0.,     301.,    302.,    303.,    304.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Grad, VALID3x14x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   1.,   2.,   3.,   4.,    5.,
      6.,    7.,    8.,   9.,   10.,  11.,  12.,  13.,  14.,  15.,   16.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   17.,  18.,  19.,   20.,
      21.,   22.,   23.,  24.,  25.,  26.,  27.,  28.,  29.,  30.,   31.,
      32.,   0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   33.,  34.,   35.,
      36.,   37.,   38.,  39.,  40.,  41.,  42.,  43.,  44.,  45.,   46.,
      47.,   48.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   49.,   50.,
      51.,   52.,   53.,  54.,  55.,  56.,  57.,  58.,  59.,  60.,   61.,
      62.,   63.,   64.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   65.,   66.,
      67.,   68.,   69.,  70.,  71.,  72.,  73.,  74.,  75.,  76.,   77.,
      78.,   79.,   80.,  0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    81.,
      82.,   83.,   84.,  85.,  86.,  87.,  88.,  89.,  90.,  91.,   92.,
      93.,   94.,   95.,  96.,  0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      97.,   98.,   99.,  100., 101., 102., 103., 104., 105., 106.,  107.,
      108.,  109.,  110., 111., 112., 0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    113.,  114., 115., 116., 117., 118., 119., 120., 121.,  122.,
      123.,  124.,  125., 126., 127., 128., 0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   2544., 2560.,
      2576., 2592., 0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,    0.,
      0.,    0.,    0.,   0.,   0.,   0.,   0.,   0.,   0.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
